Json 如何使用post和get支持将DropDownList绑定到Ajax表单?
我有一张登记个人属性的登记表。我使用includeJson 如何使用post和get支持将DropDownList绑定到Ajax表单?,json,asp.net-mvc-3,drop-down-menu,html.dropdownlistfor,Json,Asp.net Mvc 3,Drop Down Menu,Html.dropdownlistfor,我有一张登记个人属性的登记表。我使用includeAjax.BeginForm函数和JSON来序列化表单。此表单正在更新属性,并显示数据库中可用的属性。因此,如果用户输入值并单击save按钮,则会序列化表单并将其保存到db中。当用户调用页面时;它还使用JSON从DB填充表单,如果有可用的记录,而不是像往常一样显示空白表单 请在下面找到视图的一部分 @using (Ajax.BeginForm( "savepeople", "people", FormMethod.Po
Ajax.BeginForm
函数和JSON来序列化表单。此表单正在更新属性,并显示数据库中可用的属性。因此,如果用户输入值并单击save按钮,则会序列化表单并将其保存到db中。当用户调用页面时;它还使用JSON从DB填充表单,如果有可用的记录,而不是像往常一样显示空白表单
请在下面找到视图的一部分
@using (Ajax.BeginForm(
"savepeople",
"people",
FormMethod.Post,
new AjaxOptions { OnComplete = "savePicture" },
new { id = "frPeople" }))
{
@Html.ValidationSummary(true, "Problem during saving...")
<fr>
<h2>
Personal Details</h2>
<br />
<legend>Person</legend>
<div class="editor-label">
@Html.LabelFor(model => model.People.Title)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.People.Title)
@Html.ValidationMessageFor(model => model.People.Title)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.People.Description)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.People.Description)
@Html.ValidationMessageFor(model => model.People.Description)
</div>
<p>
<input id="saveMarker" type="submit" value="Save" />
</p>
}
控制器具有与JSON兼容的经典post和get函数来调用和更新页面
我的问题是:我已经能够使用文本框处理这些操作,但我想添加一个预定义的下拉列表,用于保存/更新,如果它有以db保存的记录,还可以显示值。
你知道如何处理这个问题吗?这个答案很好地解释了如何使用下拉列表: 如果您需要DropDownList的字典数据类型,您可以创建一个ViewModel,其中可以包含PeopleClass和下拉列表的字典集合,如:
public class EmployeeAddViewModel
{
public People people { get; set; }
public Dictionary<int, string> dropdownValues { get; set; }
}
公共类EmployeeAddViewModel
{
公众人物{get;set;}
公共字典下拉值{get;set;}
}
也可以将集合分配给ViewBag变量。试着阅读上面的问答链接,如果你无意中发现了某个问题,请随意提问:)
public class EmployeeAddViewModel
{
public People people { get; set; }
public Dictionary<int, string> dropdownValues { get; set; }
}