1

次のMVCフォームとコントローラーを使用して、特定のIDを持つ商品の画像をアップロードします。このフォームが何らかの理由でコントローラーに送信されると、IDはnullになります。レンダリングされたHTMLをチェックインしましたが、正しいIDがWebページにレンダリングされています。

フォーム:

@using(Html.BeginForm(new{id = ViewBag.id})){

<input type="hidden" name="id" id="id" value="@ViewBag.Id"/>

<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<input type="submit" />
}

そしてコントローラー:

[HttpPost]
public ActionResult AddImage(int merchandiseId, HttpPostedFileBase image)
<snip>

このフォームを送信すると、merchandiseIdがnullになるのはなぜですか?

4

3 に答える 3

3

間違った名前を使用しているため。変化する

<input type="hidden" name="id" id="id" value="@ViewBag.Id"/>

<input type="hidden" name="merchandiseId" id="id" value="@ViewBag.Id"/>

また

public ActionResult AddImage(int merchandiseId, HttpPostedFileBase image)

public ActionResult AddImage(int id, HttpPostedFileBase image)
于 2013-01-04T17:28:25.090 に答える
1

merchandiseIdフォームに。という入力がないため、0(nullではない)になりますmerchandiseId

<input type="hidden" name="merchandiseId" id="merchandiseId" value="@ViewBag.Id"/>
于 2013-01-04T17:28:44.267 に答える
0

Html.BeginForm以下のように変更します。

@using(Html.BeginForm(new{merchandiseId = ViewBag.id}))

これで問題が解決します。

于 2013-01-04T17:29:48.283 に答える