在強類型視圖中,我有一個下拉列表,裏面填充了來自我的viewmodel的列表中的「樂器」。每次用戶點擊音樂家工具應顯示在下拉列表下方的項目。json result to strong typed List
這是我的視圖模型
public class RegisterMusicianModel
{
public RegisterMusicianModel()
{
instrumentRepository = new InstrumentRepository();
instrumentlist = instrumentRepository.FindAllInstruments().ToList<instrument>();
musicianinstrumentlist = new List<musiciansinstrument>();
}
private InstrumentRepository instrumentRepository;
private List<instrument> instrumentlist;
private List<musiciansinstrument> musicianinstrumentlist;
public List<musiciansinstrument> Musicianinstrumentlist
{
get { return musicianinstrumentlist; }
set { musicianinstrumentlist = value; }
}
public List<instrument> Instrumentlist
{
get { return instrumentlist; }
set { instrumentlist = value; }
}
private musician music = new musician();
public musician Music
{
get { return music; }
set { music = value; }
}
}
正如你可以看到我有儀器的填充列表,音樂家儀器的空列表和音樂家的對象。 因此,每次用戶更改下拉列表中的選擇時,此方法都會被調用並返回一個JSON對象(音樂家工具,而不是樂器)。
[HttpPost]
public JsonResult AjaxInstrumentsMusician(int id)
{
musiciansinstrument mi = new musiciansinstrument();
mi.idInstruments = id;
mi.Instrumentname = instrumentrepo.GetInstrument(id).name;
return Json(mi);
}
腳本:
$(document).ready(function() {
$('#Instrumentlist').change(function (e) {
var myval = $('#Instrumentlist').val();
alert(myval);
$.ajax({
url: "/Account/AjaxInstrumentsMusician",
type: "POST",
data: { id: myval },
success: function (result) {
alert(result.Instrumentname);
},
error: function() {
alert('failed');
}
});
});
});
我可以顯示在我看來,JSON對象的屬性,無論我想,這是確定。但我真正想要的是將其添加到強類型對象(視圖模型中的空列表)。所以我可以從我的HTTPPOST方法中的viewmodel參數訪問它。我不是FormCollection的額外參數,ViewBags,...
我有點新的概念JSON,我無法在谷歌上找到任何好的解釋。這可能嗎?有沒有解決這個問題的另一個優雅的方式?
幾乎不能理解你想要做什麼。當用戶選擇儀器時填充列表?在呈現之前填充它以查看?或者在json方法中使用模型? – Rattlemouse
我有一個JSONresult可以在我的視圖中使用。我想將它添加到我的viewmodel中定義的List中,因爲它是一個強類型View我希望當用戶提交表單時可以訪問model.musicianinstrumentlist屬性中的JSON結果'[HttpPost] public ActionResult RegisterMusician(RegisterMusicianModel model ){model.musicianinstrumentlist;返回null; }'這可能實現嗎? – BBQ