【发布时间】:2015-09-28 13:09:13
【问题描述】:
我有一个视图,我正在调用一个 ActionResult 方法,但在该方法中放置一个断点告诉我它没有被调用。
<div>
<ul class="list-group">
@foreach (var item in Model)
{
<li class="list-group-item">
<h4>Slide ID: @item.SlideId</h4>
<p><i>Received: @item.TimeStamp</i></p>
<div class="row">
<div class="col-md-4">
<h4>@Html.ActionLink("View details", "Well", new {slideid = item.SlideId})</h4>
<img src="@Url.Action("Index", "Images", new {id = item.SlideId})"/> //This is where I want to call the method
</div>
</div>
</li>
}
</ul>
方法如下:
public class ImagesController : Controller
{
// GET: Images
public ActionResult Index(string id)
{
byte[] imageData = new byte[0];
string cs = "Data Source=" + "some path";
using (SQLiteConnection con = new SQLiteConnection(cs))
{
string stm = "SELECT LastImage FROM Well WHERE SlideId = " + "'" + id + "'";
con.Open();
using (SQLiteCommand cmd = new SQLiteCommand(stm, con))
{
using (SQLiteDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
imageData = Serialize(rdr["LastImage"]);
}
rdr.Close();
}
}
con.Close();
}
return File(imageData, "image/png");
}
public static byte[] Serialize(object obj)
{
var binaryFormatter = new BinaryFormatter();
var ms = new MemoryStream();
binaryFormatter.Serialize(ms, obj);
return ms.ToArray();
}
}
我试图用这段代码实现的是将图像从数据库加载到视图中。关于我做错了什么的任何提示?
现在使用 RouteConfig:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
【问题讨论】:
-
转到图片网址时看到了什么?
-
Id 应该是整数。如果您需要它是一个字符串,请给参数另一个名称。但是“Id”应该是整数
-
@jrummell 然后我得到一个 404。ActionResult Index() 永远不会被调用。
-
@Khaine775 只需检查您的 RouteConfig.cs 这也很有意义...
-
这段代码很容易受到sql注入。
标签: asp.net asp.net-mvc