MVC5 -

2016-11-11 6 views
-1

をコントローラにビューからフォームでVARを渡すしない私は、次のエラーメッセージを取得:MVC5 -

UploadId私はそれがデータテーブルに関連付けることができると仮定していnull許容値誤差

です使っています。

@model System.Data.DataTable 
@using System.Data; 

@using (Html.BeginForm("myfunc", "Index", null, FormMethod.Post, new { enctype = "multipart/form-data"}, new { UploadId = @ViewBag.UploadId })) 
{ 

コントローラ

public ActionResult myfunc(FormCollection form) 
    { 
     var theUploadId = form.UploadId; 
     return RedirectToAction("Send", "Mail", new { theUploadId = theUploadId }); 
    } 
+0

あなた 'BeginFormは()'(6つのパラメータを受け取り過負荷はありません)にも有効ではありません。その '@using(Html.BeginForm(" myfunc "、" Index "、新しい{UploadId = @ ViewBag.UploadId}、FormMethod.Post、新しい{enctype =" multipart/form-data "})'メソッドは'public ActionResult myfunc(int UploadId)' –

答えて

0

あなたのビューで@ViewBag.UploadIdを使用するとき、あなたはあなたがあなたのコントローラからそれを渡す際に、正確な名前を使用する必要があります。私は、フォーム収集フォームに取るとUploadIdをint型コントローラ用。 お使いのコントローラメソッドで次のように使用してみてください:

return RedirectToAction("Send", "Mail", new { UploadId = theUploadId });