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 に答える