MVC 3. VB.NET application.. I am trying to pass a id along to keep track of which record a file name needs to be saved in.. The problem is that the id is getting passed into the view but on post back to the controller it is being lost…I have hammered on this for hours now and I am stuck… Any Ideas??
@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>
Controller functions look like this:
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
Your @Html.HiddenFor needs to be placed inside your form.