在开始之前,我之前已经在这里看过这个问题,并且我已经按照这里给出的答案和示例进行了说明:
how to display image from path in asp.net mvc 4 and razor view
但是当我做的时候
<img src="@Url.Content(Model.ImagePath)" class="dker" alt="..." />
我收到错误
来源错误
[No relevant source lines] [NullReferenceException: Object reference not set to an instance of an object.]
在我的模特中:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace NSProfileImages
{
public class ProfileImages
{
public string ImagePath
{
get
{
return "~/Assets/Images/user_images/avatars/123@123.com.jpg";
}
}
}
}
查看:
@model NSProfileImages.ProfileImages
<img src="@Url.Content(Model.ImagePath)" class="dker" alt="..." />
如果我这样做
<img src="~/Assets/Images/user_images/avatars/123@123.com.jpg" class="dker" alt="..." />
它会正常显示图像而没有错误。
答案 0 :(得分:3)
我怀疑您忘记向视图提供模型实例。
public ActionResult Index()
{
// here we instantiate the type and supply it to the view.
ViewData.Model = new ProfileImages();
return View();
}
或者,您可以通过View
方法提供模型实例,如下所示:
return View(new ProfileImages());
请注意,在这种情况下,您可以很好地创建模型属性static
,这将无需完全提供视图模型:
public class ProfileImages {
public static string ImagePath {
get {
return "~/Assets/Images/user_images/avatars/123@123.com.jpg";
}
}
}
...
<img src="@Url.Content(NsProfileImages.ProfileImages.ImagePath)"
class="dker" alt="..." />
答案 1 :(得分:0)
在你的控制器中你应该有这样的东西:
ActionResult Index(){
return View(new ProfileImages());
}
答案 2 :(得分:0)
也许你没有传递模型来查看:
var model = new ProfileImages();
return View(model);