1

我有以下 MVC 表单和控制器来上传具有给定 ID 的商品的图像。当此表单出于某种原因提交给控制器时,id 为空。我签入了呈现的 HTML,并在网页上呈现了正确的 ID。

表格:

@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>

为什么提交此表单会导致商品 ID 为空?

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 回答