Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net Razor页面图像导入_C#_Html_Asp.net_Asp.net Mvc_Razor - Fatal编程技术网

C# asp.net Razor页面图像导入

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

我在.cshtml文件中获得了以下代码:


图片:
@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