我正在使用asp.net mvc3并使用以下模型填充创建视图
型号
public class CategoryModel
{
public int Id { get; set; }
public string Name { get; set; }
public string URL { get; set; }
public string Description { get; set; }
public string Logo { get; set; }
public bool IsActive { get; set; }
public bool isPopular { get; set; }
public IList<Category> Parentcategories { get; set; }
}
在我的创建视图中,我会像这样填充
查看
<div class="editor-field">
@Html.DropDownList("parentcategories", new SelectList(Model.Parentcategories.Select(c => c.Name), Model.Parentcategories.Select(c => c.Name)))
@Html.ValidationMessageFor(model => model.Parentcategories)
</div>
现在如何在我的控制器方法中访问所选项目
方式
[HttpPost]
public ActionResult Create( CategoryModel model , HttpPostedFileBase file)
{
//
}
感谢, 阿桑
答案 0 :(得分:1)
试试这个:
public ActionResult Create(string parentcategories, CategoryModel model , HttpPostedFileBase file)
parentcategories
将包含选定的option
值。
答案 1 :(得分:1)
如上所述 Smartboy ,您应该使用DropDownListFor:
1.使用public int ParentCategoryId { get; set; }
字段附加模型。
2.而不是使用@ Html.DropDownList使用:
@Html.DropDownListFor(m => m.ParentCategoryId, new SelectList(...))
3.服务器端可以保持不变:
[HttpPost]
public ActionResult Create(CategoryModel model)
{
//
}
其中model.ParentCategoryId
将选择项目值
另请注意,您可以先为视图设置所选项目值:
public ActionResult Index()
{
var model = CategoryModel();
...
model.ParentCategoryId = some_selected_value;
return View(model);
}
答案 2 :(得分:0)
详细信息:您可以直接从模型中访问它。
[HttpPost]
public ActionResult Create( CategoryModel model , HttpPostedFileBase file)
{
var selectedCategory = model.parentcategories; // something like that
}