ช่วงที่ได้ใช้ ASP.NET MVC ใหม่ ๆ เมื่อต้องมีการอัพโหลดไฟล์จาก form ผมเจอปัญหาหลายครั้งที่อัพโหลดแล้วข้อมูลของ file ไม่มาที่ server ทำให้ไม่สามารถนำข้อมูลไปใช้่ต่อเพื่อทำการจัดเก็บไฟล์ หลายครั้งที่ผิดพลาดกับปัญหานี้ และทำให้เสียเวลาไปมาก แต่จริง ๆ แล้วปัญหานี้อาจไม่ค่อยเกิดขึ้นหากเราเขียน HTML form ขึ้นมาเองทั้งหมด
เนื่องจาก ASP.NET MVC มีเครื่องมือที่ช่วยในการสร้าง View ได้อย่างรวดเร็วและง่ายดาย View ที่ได้จะมี form และ input element ต่างๆ ที่่ตรงกับ Property ต่างๆ ของ Model
หน้าต่างที่ทำการสร้าง View สามารถเรียกขึ้นมาโดยใน คลิกขวาภายใน block ของ Action Method ของ Controller แล้วเลือก Add View

View จะถูกขึ้นมาโดยอัตโนมัติ ตัวอย่าง code ที่ได้จะเป็นดังนี้

จุดสำหรับอยู่ที่ HtmlHelper BeginForm ซึ่งเป็น method ที่ช่วยในการสร้าง HTML form ขึ้นมา
<% using (Html.BeginForm())
{%>
เพราะเมื่อหน้านี้ถูก Render ออกมาเป็น HTML form นี้จะไม่มี attribute enctype ทำให้ข้อมูลของ file ที่เราได้ upload ไป ไม่ถูกส่งไปยัง server
วิธีแก้ง่ายๆ คือ ให้เราใช้ overload method BeginForm โดย code ที่ได้จะเป็นดังนี้
<% using (Html.BeginForm("create", "product", FormMethod.Post, new { enctype = "multipart/form-data" }))
{%>
กล่าวโดยสรุปก็ืคือ เพิ่ม attribute enctype เข้าไปทุกครั้งเมื่อมีการอัพโหลดไฟล์