0

ビューからポップアップにパラメータを渡す際に問題が発生しました。

私の見解では、アクションリンクをレンダリングするための次のかみそりコードがあり、クリックするとポップアップが表示されます。

@Html.ActionLink("[Edit Product]", "Edit", "Products", new { ProductCode = @Model.ProductCode}, new { @class = "editLink" })

これが正しいかどうか、またはその部分new { ProductCode = @Model.ProductCode}が意味をなすかどうかはよくわかりません(その部分が何をするのか説明してください、誰かhihi)。

とにかく、私のポップアップコードは次のようなパラメータを受け入れます:

@model MySuperStore.Models.ViewModel.ProductsModel

を介してProductCodeを表示しようとする@Mode.ProductCodeと、オブジェクトのインスタンスに参照が設定されていないというエラーが常に表示されます。

MainViewを介してProductCodeを配置ViewDataし、ポップアップでアクセスしようとしましたが、それも機能しないようです。

誰か助けてくれませんか?ありがとう。乾杯!

4

1 に答える 1

1

あなたのコードはうまく見えます:

@Html.ActionLink(
    "[Edit Product]", 
    "Edit", 
    "Products", 
    new { ProductCode = Model.ProductCode }, 
    new { @class = "editLink" }
)

このコードを配置するビューが厳密に型指定されていることと、それをレンダリングしたコントローラー アクションが実際のモデルを渡したものであることを確認してください。

アクションに関する限り、Editnull 以外のモデルをビューに渡していることを確認する必要があります。

public ActionResult Edit(int productCode)
{
    ProductsModel model = ... fetch your model using the productCode
    return View(model);
}

Edit.cshtmlビュー (jQuery UI ダイアログまたはポップアップ内の何かを使用してこれを開いている場合は部分ビュー)内で、モデルのプロパティを使用できます。

@model ProductsModel 
@Html.DisplayFor(x => x.ProductCode)
于 2012-07-05T11:20:00.127 に答える