ASP.net MVC 4 或 5 中作为 Link 的复选框
Checkbox as a Link in ASP.net MVC 4 or 5
是否可以在 ASP.net MVC 4 或 5 中使用引用控制器的 AcionResult 的参数将复选框设为 link?
是的,您可以通过制作自定义 html 助手来做到这一点。
在自定义助手中,你可以做任何你想做的事
示例:
public static MvcHtmlString CheckBoxLabelFor<TModel>(this HtmlHelper<TModel> pHtml, Expression<Func<TModel, bool>> pExpression, IDictionary<string, Object> pLabelHtmlAttributes, string pCaption)
{
try
{
MvcHtmlString tCheckBox;
string tCheckBoxWithLabel;
TagBuilder tBuilder;
tCheckBox = InputExtensions.CheckBoxFor(pHtml, pExpression);
tBuilder = new TagBuilder("label");
tBuilder.MergeAttributes(new RouteValueDictionary(pLabelHtmlAttributes));
tCheckBoxWithLabel ="<a>" + tBuilder.ToString(TagRenderMode.StartTag) + tCheckBox.ToString() + pCaption + "</label></a>";
return MvcHtmlString.Create(tCheckBoxWithLabel);
}
catch (Exception ex)
{
clsINFEventLogger.LogEvent(mdlEnumerations.INFEventTypes.Error, ex.Message, ex.StackTrace);
return null;
}
}
此代码生成带有标签 link 的复选框,现在要使用它并将 link 重定向到操作控制器,您必须像这样在您的视图中使用它:
@Html.CheckBoxLabelFor(model => model.Test,new Dictionary<string, object> { { "onclick", "location.href= '" + @Url.Action(YourController, YourAction, Model) + "'" } }, "Test Caption")
您的 html 生成将如下所示:
<a><label onclick="location.href= '/Namespace/YourController/YourAction'"><input id="Test" name="Test" type="checkbox" value="true">Test</label></a>
您可以根据需要编辑自定义助手:)
是否可以在 ASP.net MVC 4 或 5 中使用引用控制器的 AcionResult 的参数将复选框设为 link?
是的,您可以通过制作自定义 html 助手来做到这一点。 在自定义助手中,你可以做任何你想做的事
示例:
public static MvcHtmlString CheckBoxLabelFor<TModel>(this HtmlHelper<TModel> pHtml, Expression<Func<TModel, bool>> pExpression, IDictionary<string, Object> pLabelHtmlAttributes, string pCaption)
{
try
{
MvcHtmlString tCheckBox;
string tCheckBoxWithLabel;
TagBuilder tBuilder;
tCheckBox = InputExtensions.CheckBoxFor(pHtml, pExpression);
tBuilder = new TagBuilder("label");
tBuilder.MergeAttributes(new RouteValueDictionary(pLabelHtmlAttributes));
tCheckBoxWithLabel ="<a>" + tBuilder.ToString(TagRenderMode.StartTag) + tCheckBox.ToString() + pCaption + "</label></a>";
return MvcHtmlString.Create(tCheckBoxWithLabel);
}
catch (Exception ex)
{
clsINFEventLogger.LogEvent(mdlEnumerations.INFEventTypes.Error, ex.Message, ex.StackTrace);
return null;
}
}
此代码生成带有标签 link 的复选框,现在要使用它并将 link 重定向到操作控制器,您必须像这样在您的视图中使用它:
@Html.CheckBoxLabelFor(model => model.Test,new Dictionary<string, object> { { "onclick", "location.href= '" + @Url.Action(YourController, YourAction, Model) + "'" } }, "Test Caption")
您的 html 生成将如下所示:
<a><label onclick="location.href= '/Namespace/YourController/YourAction'"><input id="Test" name="Test" type="checkbox" value="true">Test</label></a>
您可以根据需要编辑自定义助手:)