2011-12-09 4 views
0

MVC 3. VB.NETアプリケーション..ファイル名を保存する必要があるレコードを追跡するためにIDを渡しています..問題IDはビューに渡されているが、コントローラにポストバックすると失われているということです...私は今これを数時間叩いてしまいました。Record Idをビューに渡してフォームポストに戻す

@ModelType xxxxxxxxxxx.fileUploadVM 
@Code 
ViewData("Title") = "Upload Resume" 
Layout = "~/Views/Shared/_Layout.vbhtml" 
End Code 
@Html.HiddenFor(Function(m) m.id) 
<h2>Upload Resume</h2> 
<p style="text-align: center">Please Upload your resume below.</p> 
<ul> 

<form action="UploadResume" method="post" enctype="multipart/form-data"> 
<label for="file">Filename:</label> <input type="file" name="file" id="file" /> 
<input type="submit" name="submit" value="Submit" /></form> 
</ul> 

コントローラの機能は次のようになります。

Function UploadResume(ByVal id As Integer) As ActionResult 
    Dim filevm As New fileUploadVM 
    filevm.id = id 
    Return View(filevm) 
End Function 

<AcceptVerbs(HttpVerbs.Post)> 
Public Function UploadResume(ByVal fvm As fileUploadVM) As ActionResult 

    Dim _filename As String = String.Empty 
    For Each File As String In Request.Files 
     Dim hpf As HttpPostedFileBase = TryCast(Request.Files(File), HttpPostedFileBase) 
     If hpf.ContentLength = 0 Then 
      Continue For 
     End If 
     Dim savedfileName As String = Path.Combine(AppDomain.CurrentDomain.BaseDirectory) + "\CoursePropResumes\" + Path.GetFileName(hpf.FileName) 
     hpf.SaveAs(savedfileName) 
     _filename = hpf.FileName 
    Next 

    Dim e As courseproposal = db.courseproposals.Single(Function(f) f.idCourseProposal = fvm.id) 
    e.resume_file_Name = _filename 
    UpdateModel(e) 
    db.SaveChanges() 
    Return RedirectToAction("Index") 

End Function 

答えて

1

あなた@ Html.HiddenForフォームの内側に配置する必要があります。

+0

ダンノーなぜ私はそれを見た以上...ありがとう。 – Skindeep2366

関連する問題