2013-01-04 67 views
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> 

爲什麼會提交此表的原因merchandiseId爲空?

回答

3

Becouse你用錯了名字。更改

<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) 
1

merchandiseId將是0(而不是NULL)因爲... e您的表單上沒有輸入名爲merchandiseId

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

更改Html.BeginForm象下面這樣:

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

這將解決您的問題。