0

私のコントローラーは、コントローラーから返されたモデルを取得できません。私は午前中ずっとそれを理解することができず、誰かが私を助けることができればそれを充当しました. ありがとうございました!!!

追加:私はこの例に従っています.ajaxフォームの代わりにフォームタグしかありません

MVC4ビューからコントローラーへのモデルの受け渡し

モデル は製品エンティティのリストです。データベース アクセスに .net エンティティ フレームワークを使用しています。

public class VM_Products
{
    public List<FMST_Product> Products { get; set; }
}

コントローラ

private FMSTEntities ctx = new FMSTEntities();

public ActionResult Index()
{
  VM_Products vmps = new VM_Products();

  vmps.Products = ctx.FMST_Product.ToList();

  return View("Index", vmps);
}

// when I step in, the SelectedProducts is always null ???
public ActionResult AddToCart(FMST_Product SelectedProducts)  
{
        return View();
}

意見

@using FMST
@using FMST.Models
@model VM_Products

<ul id="products" class="list clear">           
            @foreach (var p in Model.Products)
            {
                <form action="POST" id=@p.ProductID>
                    <li class="clearfix">
                    @p.ProductID
                    <br>
                    @p.ProductName
                    <br>
                    @p.ProductDesc
                    <br>
                            @p.ProductPrice
                            <span class="darkview">
            @Html.ActionLink("Add To CT","AddToCart","Product",p);

                            </span>
                    </li>

            </form>   
            }
</ul>
4

2 に答える 2

0

HTML ヘルパーを次のように変更します。

@Html.ActionLink("Add To CT","AddToCart","Product",p);

に:

@Html.ActionLink("Add To CT","AddToCart","Product",p,null);

HTML ヘルパー内でを指定しているControllerNameため、最後のパラメーターとして null を渡して、ヘルパーに正しいオーバーロードを強制的に使用させる必要があります。

于 2013-11-11T21:08:24.743 に答える
0

AddToCart アクションは製品のリストを期待しているように見えますが、単一の製品を渡しています。

1 つのステップで複数の製品をカートに追加できますか? これがあなたを正しい方向に向けることを願っています。

于 2013-11-11T17:59:41.973 に答える