1

我正在使用 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)
    {
     // 
    }

谢谢,阿山

4

3 回答 3

1

试试这个:

public ActionResult Create(string parentcategories, CategoryModel model , HttpPostedFileBase file)

parentcategories将包含选定的option值。

于 2012-11-06T08:39:50.337 回答
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);
}
于 2012-11-07T00:09:51.403 回答
0

详细信息:您可以直接从模型中访问它。

[HttpPost]
public ActionResult Create( CategoryModel model , HttpPostedFileBase file)
{
      var selectedCategory = model.parentcategories;  // something like that
}
于 2012-11-06T09:00:22.990 回答