无法将数据从下拉列表插入到数据库中



我正在使用字典将数据填充到下拉列表中。现在的问题是,我无法在下拉列表的Onchange事件上获取密钥。我想要的是代表Select Client的密钥选择模式。

控制器:=

public ActionResult Index()
{
    DataComponents dcomponents = new Models.DataComponents();
    //Getting Data From Database to Dictionary 
    dcomponents.clientName = getdata.Clients();
    dcomponents.schemaName = getdata.Schemas();
    return View(dcomponents);
}
public ActionResult Change(DataComponents dcomponents)
{
    //Select data on behalf of Client ID
    dcomponents.clientName = getdata.Clients();
    dcomponents.schemaName = getdata.Schemas(dcomponents.selectedClient);            
    return View("Index",dcomponents);
}

model =>

public class DataComponents
{
    public Dictionary<int,string> clientName { get; set; }
    public int selectedClient { get; set; }
    public Dictionary<int, string> schemaName { get; set; }
    public int selectedSchema { get; set; }
}

view =>

<td>
@Html.DropDownListFor(m => m.selectedClient,new SelectList(Model.clientName,"key","Value",Model.selectedClient), "Select Client", new { onchange = "document.location.href = '/Home/Change';" })
</td>
<td>
    @Html.DropDownListFor(m => m.selectedSchema, new SelectList(Model.schemaName, "key", "Value", Model.selectedClient), "Select Schema", new { onchange = "document.location.href = '/Home/Change';" }))
</td>

您需要将数据获取到服务器。通过帖子或通过查询字符串。我已经将事物建模为帖子。

您可以看到我将视图信息包裹在表单中,然后更改了事件以提交更改上的表格。

public ActionResult Index()
{
    DataComponents dcomponents = new Models.DataComponents();
    //Getting Data From Database to Dictionary 
    dcomponents.clientName = getdata.Clients();
    dcomponents.schemaName = getdata.Schemas();
    return View(dcomponents);
}
[HttpPost]
public ActionResult Change(DataComponents dcomponents)
{
    //Select data on behalf of Client ID
    dcomponents.clientName = getdata.Clients();
    dcomponents.schemaName = getdata.Schemas(dcomponents.selectedClient);            
    return View("Index",dcomponents);
}
@using (Html.BeginForm("Change", "Home", FormMethod.Post))
{
    <td>
        @Html.DropDownListFor(m => m.selectedClient,new SelectList(Model.clientName,"key","Value",Model.selectedClient), "Select Client", new { "this.form.submit();" })
    </td>
    <td>
        @Html.DropDownListFor(m => m.selectedSchema, new SelectList(Model.schemaName, "key", "Value", Model.selectedClient), "Select Schema", new { onchange = "this.form.submit();" }))
    </td>
}

最新更新