c#-从@ html.DropDownList返回int值

实际上,由于缺乏对ASP.NET-MVC 4的了解,我遇到了一些问题.
我想做的是从下拉列表中获取选定的值,并将其返回给控制器(作为整数).让我更加困惑的是另一个正在返回字符串Value的DropDownList.

我的模特:

public partial class PRODUCT
{
    public int ID { get; set; }
    public string PRODUCT_NAME { get; set; }
    public int CATEGORY_ID { get; set; }
    public string LANGUAGE { get; set; }
}

public partial class PRODUCT_CATEGORY
{
    public int ID { get; set; }
    public string CATEGORY_NAME { get; set; }
    public string LANGUAGE { get; set; }
}

我的控制器:
//填充ViewBag

ListProductCategory = new List<PRODUCT_CATEGORY>();
ListProductCategory = db.PRODUCT_CATEGORY.ToList();

IList<PRODUCT_CATEGORY> prodCategories = db.PRODUCT_CATEGORY.ToList();
IEnumerable<SelectListItem> selectListCategory =
     from c in prodCategories
     select new SelectListItem
     {
      Text = c.CATEGORY_NAME,
       Value = c.ID.ToString()
     };

ViewBag.ProductCategoryData = selectListCategory;

//创建动作

[HttpPost]
public ActionResult Create(PRODUCT product)
{
    if (ModelState.IsValid)
    {
        db.PRODUCTs.Add(product);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

    return View(product);
}

我的观点 :

<div class="editor-label">
        @Html.LabelFor(model => model.CATEGORY_ID)
 </div>

 <div class="editor-field">            
   @Html.DropDownList("ProductCategories", new  SelectList(ViewBag.ProductCategoryData, "Value", "Text"))          
   @Html.ValidationMessageFor(model => model.CATEGORY_ID)
 </div>

DropDown lsit已填充,但未返回ProductCategories的值,它返回的是0而不是该值.

请帮忙 ..

解决方法:

还有哪些其他下拉列表正在返回字符串?我敢打赌他们返回的字符串是模型的一部分.您的模型没有ProductCategories属性.尝试更改:

@Html.DropDownList("ProductCategories", new  SelectList(ViewBag.ProductCategoryData, "Value", "Text"))          

至:

@Html.DropDownList("CATEGORY_ID", new  SelectList(ViewBag.ProductCategoryData, "Value", "Text"))          
上一篇:如何访问Razor引擎视图文件中的C#类属性?


下一篇:通用IEnumerable的DropDownListFor Helper