Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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
Asp.net mvc 如何将两个值从DropDownListFor传回控制器?_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 如何将两个值从DropDownListFor传回控制器?

Asp.net mvc 如何将两个值从DropDownListFor传回控制器?,asp.net-mvc,Asp.net Mvc,我有一个视图,它有一个使用entityframework创建新数据库条目的表单 我可以通过下拉选择来分配productId值,但我还需要它来分配第二个我似乎无法获得的值 @Html.DropDownListFor(model => model.SerialNumber.ProductId , new SelectList(Model.Products, "Id", "Name") , "Select Product", new { @class = "form-contr

我有一个视图,它有一个使用entityframework创建新数据库条目的表单

我可以通过下拉选择来分配
productId
值,但我还需要它来分配第二个我似乎无法获得的值

@Html.DropDownListFor(model => model.SerialNumber.ProductId , 
    new SelectList(Model.Products, "Id", "Name") , "Select Product",
    new { @class = "form-control", id = "productDropDownList" } )

如何使此下拉选择从一个选择中同时填充
productId
name

A
select
选项只能有一个值。您可以将两个值组合成一个字符串,然后在发布后将字符串解析回两个值。尽管也许退后一步,重新思考方法本身,在这里也可能是正确的。如果您有产品ID,那么您肯定可以从支持数据中获取名称?您不需要提交所选文本。如果您在POST方法中需要它,然后根据
ProductId
的值从数据库中获取它,也许我可以这样解释:我想这样做,当我从下拉列表中选择一个项目时,我可以更改两个labsl的innerHTML以显示“ProductId”,一个显示“productName”。我可以得到工作的身份证,但不能得到姓名。我可以返回一个完整的产品对象,然后使用javascript获取该对象的各个元素以分配给我的标签吗?@Christof:您可以序列化一个产品对象,并将其作为
选择
的值,然后根据需要从该值解析所需内容。但我仍然怀疑另一种方法可能是一个更好的主意。例如,有多少种产品?这是页面加载时可以加载到JavaScript中的静态数据吗?还是在进行选择时通过AJAX获取?根据ID,您确实应该能够从某处获取名称。@David my viewmodel包含一个产品列表,用于填充下拉列表。该列表将填充产品名称。正如在我的代码中看到的,它选择“Id”,并在提交表单时返回该Id。我应该在什么地方键入内容,使其基于“Product.Id”获得“Product.Name”?