.net mvc html5,带有.NET MVC 3 Razor Editor的HTML5占位符

小编典典

您可以阅读以下有关编写自定义的文章DataAnnotationsModelMetadataProvider。

这是涉及新引入的IMetadataAware接口的另一种ASP.NET MVC 3ish更多方法。

首先创建一个实现此接口的自定义属性:

public class PlaceHolderAttribute : Attribute, IMetadataAware

{

private readonly string _placeholder;

public PlaceHolderAttribute(string placeholder)

{

_placeholder = placeholder;

}

public void OnMetadataCreated(ModelMetadata metadata)

{

metadata.AdditionalValues["placeholder"] = _placeholder;

}

}

然后用它来装饰模型:

public class MyViewModel

{

[PlaceHolder("Enter title here")]

public string Title { get; set; }

}

接下来定义一个控制器:

public class HomeController : Controller

{

public ActionResult Index()

{

return View(new MyViewModel());

}

}

相应的视图:

@model MyViewModel

@using (Html.BeginForm())

{

@Html.EditorFor(x => x.Title)

}

最后是编辑器模板(~/Views/Shared/EditorTemplates/string.cshtml):

@{

var placeholder = string.Empty;

if (ViewData.ModelMetadata.AdditionalValues.ContainsKey("placeholder"))

{

placeholder = ViewData.ModelMetadata.AdditionalValues["placeholder"] as string;

}

}

@Html.Label(ViewData.ModelMetadata.PropertyName)

@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new { placeholder = placeholder })

2020-05-10

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值