我想爲Html.EditorFor
使用Html.EditorFor
作爲我需要應用DisplayFormat
屬性和HTML屬性(特別是CSS類)的值。使用Html.EditorFor和Html.TextBox傳遞HTML屬性和[DisplayFormat]
Html.TextBox
忽略DisplayFormat
屬性,而Html.EditorFor
不會讓我傳遞Html屬性。除了自己寫HTML之外,這裏最好的解決方案是什麼?
我想爲Html.EditorFor
使用Html.EditorFor
作爲我需要應用DisplayFormat
屬性和HTML屬性(特別是CSS類)的值。使用Html.EditorFor和Html.TextBox傳遞HTML屬性和[DisplayFormat]
Html.TextBox
忽略DisplayFormat
屬性,而Html.EditorFor
不會讓我傳遞Html屬性。除了自己寫HTML之外,這裏最好的解決方案是什麼?
這裏有一個可能性:
public class MyModel
{
[UIHint("MyDateTemplate")]
public DateTime Value { get; set; }
}
和~/Views/Home/EditorTemplates/MyDateTemplate.ascx
:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DateTime>" %>
<%: Html.TextBox(
string.Empty,
Model.ToString("dd/MM/yyyy"),
new { @class = "foo" }
)%>
,並在主視圖:
<%: Html.EditorForModel()
或另一個之一:
public class MyModel
{
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime Value { get; set; }
}
,並在你的主觀點:
<div class="foo">
<%: Html.EditorFor(x => x.Value) %>
</div>
,並在你的CSS:
.foo input {
/* define some rule here */
}
嗯,爲了傳遞HTML屬性而需要實現一個控件似乎很奇怪,我不在應用程序的其他任何位置執行此操作。 – RedFilter 2010-10-15 22:59:56
我遇到同樣的問題剛纔來了。如果您正在使用編輯器模板日期選擇器,你可以簡單地使用(使用剃刀):
@model System.DateTime
@Html.TextBox("", Model.ToString(ViewData.ModelMetadata.DisplayFormatString), new { @class = "date" })
這將使用DisplayFormat屬性中的值格式化日期。
你可以使用jquery添加css類 – Omu 2010-10-13 20:46:20