我的 DropDownListFor 看起来像:
@Html.DropDownListFor(
m => m.CampaignID,
new SelectList(Model.Campaigns, "ID", "Name"),
"---Geen---",
new {
id = "campaignDdl",
data_url = Url.Action("CampaignChosen", "Nomination")
}
)
我的 onchange javascript 看起来像:
$(function () {
$('#campaignDdl').change(function () {
//alert('Template knop geklikt');
var $campaignDdl = $('#campaignDdl');
var selCampID = $campaignDdl.val();
var url = $campaignDdl.data('url');
$.post(url, { selectedCampaignID: selCampID }, function (data) {
$('#campaign').html(data);
})
.fail(function (jqxhr) { alert(JSON.stringify(jqxhr)); });
});
});
我的 CampaignChosen 操作如下所示:
[AcceptVerbs("POST")]
public ActionResult CampaignChosen(string selectedCampaignID) {
if (!string.IsNullOrEmpty(selectedCampaignID)) {
int campaignID = Convert.ToInt32(selectedCampaignID);
Models.Campaign campaign = Models.Campaign.GetCampaignByID(campaignID);
return PartialView("ShowCampaignOverview", campaign);
} else {
return PartialView("ShowCampaignOverview", null);
}
}
如您所见,我正在传递部分视图。javascript 确保视图被放入一个 id = "campaign" 的 div 中。这个 div 是在你之前看到的下拉列表下定义的,如下所示:
<div id="campaign"></div>
选择一个项目后,一切正常。再高兴不过了。但是当您在浏览器上按重新加载时,所选项目仍显示在下拉列表中,但我不知道如何再次在该 div 中加载正确的局部视图。因为我对 MVC 还是有点陌生。
谁能指出这通常在 MVC 中是如何完成的?预先感谢您的回答。