asp.net-mvc – 如何在扩展方法中使用HTML帮助器方法?
发布时间:2020-05-22 11:18:52 所属栏目:asp.Net 来源:互联网
导读:我有以下课程: public class Note{ public string Text { get; set; } public RowInfo RowInfo { get; set; }}public class RowInfo{ [DisplayName(Created)] public DateTime Created { get; set;
|
我有以下课程: public class Note
{
public string Text { get; set; }
public RowInfo RowInfo { get; set; }
}
public class RowInfo
{
[DisplayName("Created")]
public DateTime Created { get; set; }
[DisplayName("Modified")]
public DateTime Modified { get; set; }
}
在我看来,我有以下内容创建具有正确名称和值的HTML: Html.HiddenFor(model => model.Note.Created) 现在我要做的是创建一个扩展方法,包括上面的,我可以在每个视图中调用.我尝试过以下操作.我认为我走在正确的轨道上,但我不知道如何做相当于“model => model.Note.Created”有人可以给我一些关于如何做到这一点以及我需要更换的建议括号内的文字.我没有模型,但我可以通过其他方式执行此操作,因此隐藏字段将查看我的类以获取正确的DisplayName,就像它上面一样? namespace ST.WebUx.Helpers.Html
{
using System.Web.Mvc;
using System.Web.Mvc.Html
using System.Linq;
public static class StatusExtensions
{
public static MvcHtmlString StatusBox(this HtmlHelper helper,RowInfo RowInfo )
{
return new MvcHtmlString(
"Some things here ... " +
System.Web.Mvc.Html.InputExtensions.Hidden( for created field ) +
System.Web.Mvc.Html.InputExtensions.Hidden( for modified field ) );
}
}
解决方法您可以编写一个带有λ表达式的强类型助手:public static class StatusExtensions
{
public static IHtmlString StatusBox<TModel,TProperty>(
this HtmlHelper<TModel> helper,Expression<Func<TModel,TProperty>> ex
)
{
return new HtmlString(
"Some things here ... " +
helper.HiddenFor(ex));
}
}
接着: @Html.StatusBox(model => model.RowInfo.Created) 更新: 根据评论部分的要求,这里是帮助者的修订版本: public static class StatusExtensions
{
public static IHtmlString StatusBox<TModel>(
this HtmlHelper<TModel> helper,RowInfo>> ex
)
{
var createdEx =
Expression.Lambda<Func<TModel,DateTime>>(
Expression.Property(ex.Body,"Created"),ex.Parameters
);
var modifiedEx =
Expression.Lambda<Func<TModel,"Modified"),ex.Parameters
);
return new HtmlString(
"Some things here ..." +
helper.HiddenFor(createdEx) +
helper.HiddenFor(modifiedEx)
);
}
}
接着: @Html.StatusBox(model => model.RowInfo) 不用说,应该使用自定义HTML帮助程序来生成HTML的一小部分.复杂性可能会快速增长,在这种情况下,我建议您使用RowInfo类型的编辑器模板. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – 在ASP.NET MVC3 Intranet应用程序中获取登
- asp.net – Html.RenderAction和Html.Action之间的区别
- 多个控制器,一个视图和一个模型ASP.NET MVC 3
- asp.net-mvc – ASP.NET MVC / EF4 / POCO /存储库 – 如何
- asp.net – html脚本标签不使用类型javascript?
- asp.net-mvc – 将HTML.EditorFor转换为下拉列表(html.drop
- 如何将纯文本发布到ASP.NET Web API端点?
- asp.net – AspNetCompatibilityRequirements是什么意思?
- asp.net-mvc – 来自SignalR的这些轮询请求来自哪里?
- asp.net-mvc – ASP.NET MVC 5:使用站点模板无限重定向到登
推荐文章
站长推荐
- asp.net-mvc-3 – ASP.NET成员资格 – 本地登录,
- asp.net-mvc – ASP.net MVC CheckBoxFor转换错误
- 单元测试后面的ASP.NET代码
- 为什么我要在公共站点上使用ASP.NET MVC,在Intra
- asp.net-mvc – 使用MVC的AuthorizeAttribute和多
- asp.net – 如何强制实体框架插入标识列?
- asp.net-mvc-3 – MVC3有条件地禁用Html.TextBox
- 通过HTTPS在ASP.NET中安全的会话cookie
- 如何在ASP.NET中使用log4net在日志文件中包含Ses
- 准备ASP.Net网站进行渗透测试
热点阅读
