Asp.net Dropdownlist在partialview中返回空viewdata Id
我正在开发一个多步骤表单,它必须在其他步骤加起来之前将第一步提交到数据库,并在最后一步之后最终提交。看看我决定使用Sessions的选项,但是我很乐意使用更好的选项。我设法做到了这一点,后来决定使用ajax进行表单提交,因此需要PartialView。问题是下拉列表返回空的viewdata值-即它们没有绑定。任何人都可以建议最好的方式组成控制器,使这项工作。如果我恢复为返回视图而不是返回PartialView,效果会很好 控制器Asp.net Dropdownlist在partialview中返回空viewdata Id,asp.net,asp.net-mvc-4,html.dropdownlistfor,asp.net-mvc-partialview,ajax.beginform,Asp.net,Asp.net Mvc 4,Html.dropdownlistfor,Asp.net Mvc Partialview,Ajax.beginform,我正在开发一个多步骤表单,它必须在其他步骤加起来之前将第一步提交到数据库,并在最后一步之后最终提交。看看我决定使用Sessions的选项,但是我很乐意使用更好的选项。我设法做到了这一点,后来决定使用ajax进行表单提交,因此需要PartialView。问题是下拉列表返回空的viewdata值-即它们没有绑定。任何人都可以建议最好的方式组成控制器,使这项工作。如果我恢复为返回视图而不是返回PartialView,效果会很好 控制器 [AllowAnonymous] public ActionRe
[AllowAnonymous]
public ActionResult ContactViewDetails()
{
ViewBag.CountryList = new SelectList(db.Countries, "CountryId", "CountryName");
return PartialView("ContactViewDetails");
}
模型
默认页面视图
<script src="~/Scripts/jquery-2.1.3.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<div id="divContainer">
@Html.Partial("RegViewDetails")
</div>
永远不要给SelectList属性与绑定到的属性同名。ViewBag.CountryList=新建SelectList。。在视图@Html.DropDownListForx=>x.CountryId中,选择ListViewBag.CountryList,…@StephenMuecke谢谢我已经更改了,但仍然没有绑定您提到了部分视图-此下拉列表是否以部分形式呈现,如果是,请传递HtmlFieldPrefix。你需要提供更多的代码来理解问题的可能。通过ajax提交表单,你买了什么?@Qudoos感谢你提出的问题,寻求澄清-我使用ajax是为了更好的用户体验。但我设法解决了这个问题,这是唯一的绊脚石。
<script src="~/Scripts/jquery-2.1.3.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<div id="divContainer">
@Html.Partial("RegViewDetails")
</div>
@{
AjaxOptions options = new AjaxOptions();
options.HttpMethod = "POST";
options.InsertionMode = InsertionMode.Replace;
options.UpdateTargetId = "divContainer";
}
@using (Ajax.BeginForm("ContactViewDetails", "OnlineApplication", options, new { @class = "form-horizontal" }))
{
@Html.DropDownListFor(x => x.CountryId, (IEnumerable<SelectListItem>)ViewBag.CountryList, new { @class = "chooseOption" })
@Html.......others
}
......
return PartialView("ContactViewDetails");