Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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
Asp.net mvc 3 在MVC3Razor中显示上载的图像_Asp.net Mvc 3_Razor - Fatal编程技术网

Asp.net mvc 3 在MVC3Razor中显示上载的图像

Asp.net mvc 3 在MVC3Razor中显示上载的图像,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,这个新手在显示上传到服务器的图像时出错了: 型号: public class Person { public int ID { get; set; } public string Name { get; set; } public string ImageUrl { get; set; } } 控制器(上传-由[HttpPost]公共操作结果创建调用): 创建视图: ... @using (Html.BeginForm("Create", "Person", Fo

这个新手在显示上传到服务器的图像时出错了:

型号:

public class Person
{
    public int ID { get; set; }
    public string Name { get; set; }
    public string ImageUrl { get; set; }
}   
控制器(上传-由[HttpPost]公共操作结果创建调用):

创建视图:

...
@using (Html.BeginForm("Create", "Person", FormMethod.Post, new { @encType = "multipart/form-data" }))
{
    ...
    @FileUpload.GetHtml(initialNumberOfFiles: 1, allowMoreFilesToBeAdded: false, includeFormTag: false, uploadText: "image")
    ...
    <div>
        <input type="submit" value="Create" /> |
        @Html.ActionLink("Back", "Index")
    </div> 
}
视图中的调用:

@Html.MyImage(Model.ImageUrl)
生成的代码是

<img alt="[IMAGE]" src="/App_Data/Uploads/Fotos/_nofoto.jpg" />

但结果是一样的:没有图像:(

---已解决---


显然,App_数据不是保存上传文件的好位置,因为访问它们将导致错误403-禁止。我将文件移动到~/Uploads/Fotos,它就工作了。

这不是有效的HTTP路径。这是您计算机上文件夹的路径

请尝试
UrlHelper.GenerateContentUrl()
方法

img标记有一个硬盘url,而不是http…另一个尝试:
@{var imgPath=UrlHelper.GenerateContentUrl(Model.ImageUrl,this.ViewContext.HttpContext);}
相同的结果:[IMAGE]
<img src="D:\Users\x\Documents\Visual Studio 2010\Projects\CMI_AD\CMI_AD\App_Data\Uploads\Fotos\_nofoto.jpg" alt="IMAGE" />
public static class MyHelpers
{
    public static IHtmlString MyImage(this HtmlHelper htmlHelper, string url)
    {
        var urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext);
        var img = new TagBuilder("img");
        img.Attributes["alt"] = "[IMAGE]";
        img.Attributes["src"] = UrlHelper.GenerateContentUrl(url, htmlHelper.ViewContext.HttpContext);
        return MvcHtmlString.Create(img.ToString(TagRenderMode.SelfClosing));
    }
}
@Html.MyImage(Model.ImageUrl)
<img alt="[IMAGE]" src="/App_Data/Uploads/Fotos/_nofoto.jpg" />