C# MVC3图像按钮
有没有办法让@Html.actionLink成为一个点击的图像,而不仅仅是一个超链接?目前,我们有一个旧版本,它有一个onclick属性链接到一个代码隐藏,因此需要将其转换为链接到控制器的链接,而不是MVC3中不再存在的代码隐藏 有没有办法让@Html.actionLink成为一个点击的图像,而不仅仅是一个超链接 不,但是你可以写一个生成图像或任何你喜欢的东西的脚本。事实上,现在我认为你可以将CSS类应用于thins anchor,它将C# MVC3图像按钮,c#,asp.net-mvc-3,razor,C#,Asp.net Mvc 3,Razor,有没有办法让@Html.actionLink成为一个点击的图像,而不仅仅是一个超链接?目前,我们有一个旧版本,它有一个onclick属性链接到一个代码隐藏,因此需要将其转换为链接到控制器的链接,而不是MVC3中不再存在的代码隐藏 有没有办法让@Html.actionLink成为一个点击的图像,而不仅仅是一个超链接 不,但是你可以写一个生成图像或任何你喜欢的东西的脚本。事实上,现在我认为你可以将CSS类应用于thins anchor,它将背景图像应用于它,并固定宽度和高度。我只是不知道如何处理te
背景图像应用于它,并固定宽度和高度。我只是不知道如何处理text=>IIRCHtml。ActionLink
强制您传递一个非空的linkText
参数作为第一个参数。最后,定制HTML助手似乎不是一个坏主意。@使用(HTML.BeginForm())
@using (Html.BeginForm())
{
<p>
<input type="image" value="submit" src="../../Images/login_button.png" alt="submit Button">
</p>
}
{
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Web;
使用System.Web.Helpers;
使用System.Web.Mvc;
命名空间智能基础设施
{
公共静态类Html
{
///
///使用可单击的图像而不是文本创建和操作链接。
///
///
///控制器
///行动
///参数
///图像源
///备选文本(可选)
///带有嵌套图像标记的HTML锚定标记。
公共静态MvcHtmlString ActionImage(此HtmlHelper帮助程序、字符串控制器、字符串操作、对象参数、字符串src、字符串alt=“”、字符串标题=“”)
{
标记生成器标记生成器=新标记生成器(“img”);
UrlHelper UrlHelper=新的UrlHelper(helper.ViewContext.RequestContext);
字符串url=urlHelper.Action(操作、控制器、参数);
字符串imgUrl=urlHelper.Content(src);
字符串图像=”;
StringBuilder html=新的StringBuilder();
//构建图像标签。
tagBuilder.MergeAttribute(“src”,imgUrl);
tagBuilder.MergeAttribute(“alt”,alt);
tagBuilder.MergeAttribute(“标题”,标题);
image=tagBuilder.ToString(TagRenderMode.SelfClosing);
html.Append(“”);
返回MvcHtmlString.Create(html.ToString());
}
}
}
正如Dimitrov所说,您可以为此编写一个自定义帮助程序,但我只会为您经常使用它而烦恼,如果它只是用来替换一个按钮,我只会使用一个普通的锚定标记并设置href vial@Url.Action(),它会像@Html.ActionLink一样将您指向一个控制器/操作。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Helpers;
using System.Web.Mvc;
namespace SMART.Infrastructure
{
public static class Html
{
/// <summary>
/// Creates and Action link with a clickable image instead of text.
/// </summary>
/// <param name="helper"></param>
/// <param name="controller">Controller</param>
/// <param name="action">Action</param>
/// <param name="parameters">Parameters</param>
/// <param name="src">Image source</param>
/// <param name="alt">Alternate text(Optional)</param>
/// <returns>An HTML anchor tag with a nested image tag.</returns>
public static MvcHtmlString ActionImage(this HtmlHelper helper, String controller, String action , Object parameters, String src, String alt = "", String title = "")
{
TagBuilder tagBuilder = new TagBuilder("img");
UrlHelper urlHelper = new UrlHelper(helper.ViewContext.RequestContext);
String url = urlHelper.Action(action, controller, parameters);
String imgUrl = urlHelper.Content(src);
String image = "";
StringBuilder html = new StringBuilder();
// build the image tag.
tagBuilder.MergeAttribute("src", imgUrl);
tagBuilder.MergeAttribute("alt", alt);
tagBuilder.MergeAttribute("title", title);
image = tagBuilder.ToString(TagRenderMode.SelfClosing);
html.Append("<a href=\"");
html.Append(url);
html.Append("\">");
html.Append(image);
html.Append("</a>");
return MvcHtmlString.Create(html.ToString());
}
}
}