asp.net-mvc - @Html.DropDownListFor 将 ID 和值以及 ID 的不同名称一起获取到模型中

标签 asp.net-mvc asp.net-mvc-4

任何人都可以帮忙解决这个问题吗?

我有一个模型

Product{ID, Name, SupplierID, Supplier}
Supplier {ID, Name}

使用 @Html.DropDownListFor 我想填充产品的 SupplierIDSupplier

在我使用的 ProductController

public ActionResult Edit(Guid id)
{
    Product product = db.products.Find(id);
    if (product == null)
    {
        return HttpNotFound();
    }
    ViewBag.SupplierId = new SelectList(db.Suppliers, "ID", "Name", product.SupplierID );
    return View(customer);
}

[HttpPost]
public ActionResult Edit(Customer customer)
{
    if (ModelState.IsValid)
    {
        db.Entry(customer).State = EntityState.Modified;
        db.SaveChanges();
        return RedirectToAction("Index");
    }
    return View(customer);
}

db.SaveChanges中,它提示SupplierNULL使用 View (模型 => model.SupplierID、ViewBag.SupplierId 作为 SelectList)

最佳答案

我会为此使用jquery。将选定的名称添加到您的模型并将其分配给隐藏字段

@Html.HiddenFor(x => x.SelectedName, new { @class = "SelectedName" })

然后在你的脚本中

$('#SupplierID").on('change', function(){
    $('.SelectedName').val($('#SupplierID :selected').text());
});

因此,每次更改下拉列表时,所选名称都会放入隐藏字段中,并且会与下拉列表中所选的 ID 一起传递回 Controller 。希望这有帮助

关于asp.net-mvc - @Html.DropDownListFor 将 ID 和值以及 ID 的不同名称一起获取到模型中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19984540/

相关文章:

html - 我的 css 文件中的跨度字段错误

javascript - MVC DropDownList onchange 事件与值

c# - 为什么在 web api 中返回具有一对多关系的实体会导致错误?

c# - 如何将查询字符串参数转换为asp.net mvc 4中的路由

c# - 如何在 asp.net mvc 4 中创建具有局部 View 的搜索功能

asp.net-mvc - 我可以将我的 ASP.NET MVC 应用程序移至 Microsoft 云吗?

asp.net - 使用连接字符串中的 AD 用户名和密码对 SQL 进行 Windows 身份验证

javascript - MVC4 : how to set session variable to null in javascript

asp.net-mvc - 运行 MVC 应用程序时出错

asp.net-mvc - Href ASP.NET MVC/Razor 的 URL 编码字符串