【发布时间】:2017-11-16 05:21:14
【问题描述】:
我有一个下面的模型
public class category
{
[Key]
public long category_id { get; set; }
public string category_desc { get; set; }
public long? client_id { get; set; }
public long? display_sno { get; set; }
}
控制器将模型传递给视图
public ActionResult category(long? client_id)
{
var category_type = db.category.Where(m => m.client_id == null).ToList();
if(client_id == 10)
{
category_type = db.category.Where(m => m.client_id == client_id).ToList();
}
return View(category_type);
}
在视图中填充单选按钮
@foreach (var item in Model)
{
@Html.DisplayFor(modelItem => item.display_sno)<text>.</text>
@Html.RadioButtonFor(modelItem => item.category_id, item.category_id, new { id=item.category_id})@item.category_desc
}
发布方法
public ActionResult Category(category g)
{
}
在 post 方法中 g 是 null。
我在这里缺少什么?
【问题讨论】:
-
您的单选按钮没有意义。您需要一组单选按钮绑定到具有不同值的相同属性。不清楚你想用这段代码做什么
-
@StephenMuecke category_id 对于每个单选按钮都是唯一的,并且在回发时需要获取选定的 category_id
-
是的,但是为此您需要一个具有属性的模型(比如说
public long category_id { get; set; })和另一个属性,它是一个包含每个单选按钮值的集合(比如说public IEnumerable<int> Values { get; set; },然后是它foreach (var item in Model.Values { @Html.RadioButtonFor(m => m.category_id, item) } -
假设
Values是[1,2,3,4]将生成<input type="radio" name="category_id" value="1">(和value="2"等)。当您提交时,如果您选择了第二个单选按钮,category_id的值将是2 -
@StephenMuecke 值不是 1,2,3... category_id 是随机数..
标签: asp.net-mvc asp.net-mvc-4 radiobuttonfor