C# asp.net Razor页面图像导入
我在.cshtml文件中获得了以下代码:C# asp.net Razor页面图像导入,c#,html,asp.net,asp.net-mvc,razor,C#,Html,Asp.net,Asp.net Mvc,Razor,我在.cshtml文件中获得了以下代码: 图片: @TextBoxFor(m=>m.File,新的{type=“File”,accept=“image/*”}) @Html.ValidationMessageFor(m=>m.File,“,new{@class=“redColor”}) 这在我的ViewModel中: 公共映像文件{get;set;} (图像来自System.Drawing) 问题是,每次控制器中的文件都是空的 public ActionResult联系人(ContactV
图片:
@TextBoxFor(m=>m.File,新的{type=“File”,accept=“image/*”})
@Html.ValidationMessageFor(m=>m.File,“,new{@class=“redColor”})
这在我的ViewModel中:
公共映像文件{get;set;}
(图像来自System.Drawing)
问题是,每次控制器中的文件都是空的
public ActionResult联系人(ContactViewModel数据)
{
var Image=data.File//data.File为空
}
在您的视图模型中,您需要将类型从图像更改为HttpPostedFileBase
:
public HttpPostedFileBase File { get; set; }
和您的控制器
:
[HttpPost]
public ActionResult Contact(ContactViewModel data)
{
var Image = data.File //data.File is null
}
您的表单应该如下所示:
@Html.Beginform("Contact", "Home", FormMethod.Post, new { enctype = "multipart/form-data" })
正如您在评论中所述,您使用的是Html.Beginform(“Contact”,“Home”,FormMethod.Post
但是,我可以提出以下建议,因为当将图像发布到控制器方法时,它似乎可以正常工作
@using ("Contact", "Home", FormMethod.Post, new {enctype = "multipart/form-data"})
{
// form things blah blah blag
// When it comes to inputting the image file, I suggest you do the following
// Instead of this @Html.TextBoxFor(m => m.File, new { type = "file", accept="image/*" })
// Have
<input type="file" name="file" id="fileUpload" accept=".png, .jpg, .jpeg"/>
}
那我们在这里干什么
我们正在创建一个表单,就像您之前所做的那样,但是我们正在添加一个额外的参数,指定在将表单传递给控制器时,表单应该如何编码
<input type="file" name="file" id="fileUpload" accept=".png, .jpg, .jpeg"/>
这是我们将要传递的文件。名称
必须与输入标签中的名称
完全相同您是如何将文件发送给控制器的?您能告诉我们吗?@RahulSharma我使用的是viewmodel,在表单中我使用的是Html.Beginform(“Contact”,“Home”,FormMethod.Post
<input type="file" name="file" id="fileUpload" accept=".png, .jpg, .jpeg"/>
HttpPostedFileBase file