Asp.net mvc 无法获取超链接或按钮的隐藏属性
我在MVC4项目中有一个自定义HTML助手方法,该方法返回WebGrid的HTML url,如下所示:Asp.net mvc 无法获取超链接或按钮的隐藏属性,asp.net-mvc,razor,webgrid,hidden-field,mvchtmlstring,Asp.net Mvc,Razor,Webgrid,Hidden Field,Mvchtmlstring,我在MVC4项目中有一个自定义HTML助手方法,该方法返回WebGrid的HTML url,如下所示: <img title="Delete" src="../../Content/delete.png"> 下面是我定义的HTML助手类: public static MvcHtmlString ActionImage(this HtmlHelper html, string imagePath, string alt, string cssClass, string acti
<img title="Delete" src="../../Content/delete.png">
下面是我定义的HTML助手类:
public static MvcHtmlString ActionImage(this HtmlHelper html, string imagePath, string alt, string cssClass,
string action, string controllerName, object routeValues)
{
var currentUrl = new UrlHelper(html.ViewContext.RequestContext);
var imgTagBuilder = new TagBuilder("img"); // build the <img> tag
imgTagBuilder.MergeAttribute("src", currentUrl.Content(imagePath));
imgTagBuilder.MergeAttribute("title", alt);
imgTagBuilder.MergeAttribute("class", cssClass);
string imgHtml = imgTagBuilder.ToString(TagRenderMode.SelfClosing);
var anchorTagBuilder = new TagBuilder("a"); // build the <a> tag
anchorTagBuilder.MergeAttribute("href", currentUrl.Action(action, controllerName, routeValues));
anchorTagBuilder.InnerHtml = imgHtml; // include the <img> tag inside
string anchorHtml = anchorTagBuilder.ToString(TagRenderMode.Normal);
return MvcHtmlString.Create(anchorHtml);
}
我建议您使用按钮的图像创建一个CSS类:
.edit-button {
display: block;
height:24px; //size of your img
width:24px;
background: url('myImage.jpg');
}
在您的视图中,您只需创建ActionLink并指定要使用的类:
@Html.ActionLink(" ", "Detail", "Admin", new { id = 10}, new { @class = "edit-button" })
然后在控制器中完成:
public ActionResult Edit(int id)
{
//do something
return View();
}
如果您认为这是使用图像创建ActionLink的更好选择
希望有帮助 感谢您的回复。我尝试了@Html.ActionLink,正如您在两个网格列和我视图的另一个部分中所描述的那样,但它们都不起作用。正如我之前所说,我的链接适用于编辑操作,但不适用于删除操作。因为问题与隐藏字段id有关,我们需要将隐藏输入字段添加到标记中,并为此输入定义type=“Hidden”,以便将id参数传递给Delete方法。有什么想法吗?你能添加上面我添加的控制器的删除方法吗。非常感谢。
.edit-button {
display: block;
height:24px; //size of your img
width:24px;
background: url('myImage.jpg');
}
@Html.ActionLink(" ", "Detail", "Admin", new { id = 10}, new { @class = "edit-button" })
public ActionResult Edit(int id)
{
//do something
return View();
}