0

Html.DropDownListForを使用してドロップダウンリストを作成し、ユーザーが選択した値を取得しようとしています。リストを表示することはできますが、選択した値を渡すためのリンクを取得する方法がわかりません。
私は次のモデルを持っています:

public partial class ProductVariant
{
    public int ID { get; set; }
    public string Sku { get; set; }
}

次のViewModel:

public class SkuToDiscountViewModel
{
    public int ID { get; set; }
    public string Sku { get; set; }
    public IEnumerable<ProductVariant> Products { get; set; }
}

次のコントローラーアクション:

public ViewResult Index()
    {
       SkuToDiscountViewModel sModel = new SkuToDiscountViewModel();
        List<ProductVariant> prodSkus = db.ProductVariants.ToList();
        sModel.Products = prodSkus;
        return View(sModel);
    }

次のビュー:

@model mySpace.ViewModel.SkuToDiscountViewModel
@{
    ViewBag.Title = "Index";
 }
 <h2>Index</h2>
 @using(Html.BeginForm())
    {
       Html.DropDownListFor(x=>x.ID,
       new SelectList(Model.Products,"ID", "Sku", Model.ID), " select ")
      <p>
          @Html.ActionLink("Edit", "Edit") 
      </p>
    }

どんな助けでも大歓迎です。

4

1 に答える 1

2

フォームに送信ボタンを送信する必要があります。

@model mySpace.ViewModel.SkuToDiscountViewModel
@{
    ViewBag.Title = "Index";
}
<h2>Index</h2>
@using(Html.BeginForm())
{
    Html.DropDownListFor(x=>x.ID,
        new SelectList(Model.Products,"ID", "Sku", Model.ID), " select ")
    <p>
        <input type="submit" value="Save" />
    </p>
}

次に、次のようにコントローラーにアクションを追加する必要があります。

[HttpPost]
public ActionResult Index(SkuToDiscountViewModel postedModel)
{
    // postedModel.ID will contain the value selected in the drop down list
}
于 2013-01-28T18:44:20.560 に答える