Asp.net mvc 无法获取超链接或按钮的隐藏属性

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

我在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 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();
}