Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 如何使用post和get支持将DropDownList绑定到Ajax表单?_Json_Asp.net Mvc 3_Drop Down Menu_Html.dropdownlistfor - Fatal编程技术网

Json 如何使用post和get支持将DropDownList绑定到Ajax表单?

Json 如何使用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

我有一张登记个人属性的登记表。我使用include
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; }
}