簡體   English   中英

向EditorFor添加一個類 - razor c#

[英]adding a class to EditorFor - razor c#

(編輯器用於名為“ADate”的DateTime屬性

我正在嘗試這個,但它不起作用。

@Html.EditorFor(model => model.ADate, new { cssClass = "date" } )

所以我嘗試了這個:

@Html.TextBoxFor(model => model.ADate, new { @class = "date" })

但它輸出type = text .. ofcourse它確實。

所以我嘗試了一個模板......我在共享中添加了一個文件夾:

Shared/EditorTemplates

然后我創建了一個名為Date.cshtml的.cshtml局部視圖

現在我在里面放什么:哦......

我試圖了解很多帖子和堆棧溢出條目,但它並沒有陷入其中。

目標是在整個應用程序中使用“。日期”類附加一個日期選擇器 “.date” ...使用“.date”類... TextBoxFor適用於我的添加類部分...但正如我所說,類型從日期更改到文本 :(

好的,這就是你可以做的:

EditorTemplates文件夾中,創建一個名為DateTime.cshml的模板(如果您將該名稱用於日期,該名稱將自動解析,否則您在使用它時必須指定該名稱)。 然后在其中:

@model System.DateTime

@Html.TextBox(
   string.Empty, 
   Model.ToString("yyyy-MM-dd"),
   new { @class="datepicker", @type = "date"})

使用最后一個參數,您可以指定任何html屬性(類,數據,類型等)。

然后你像這樣使用它:

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

如果您選擇使用不同的名稱命名模板,可以通過調用另一個重載來指定它:

@Html.EditorFor(x => x.ADate, "MyOtherAwesomeTemplate")

EditorFor html幫助器不會為DateTime屬性呈現日期選擇器(如果這是您想要做的)。 DateTime的默認EditorFor是文本輸入。 如果要使用日期選擇器,則必須使用jQuery DatePicker(或任何其他第三方日期選擇器)。

此外,EditorFor助手沒有html屬性的參數。 如果要分配類,則必須使用TextBoxFor。

在主視圖中,使用EditorFor,如下所示:

@Html.EditorFor(model => model.ADate)

然后,在您的編輯模板(Date.cshtml)中,您將擁有:

@model System.DateTime

<script type="text/javascript">
    $(function () {
        $(".date").datepicker();
    });
</script>

@Html.TextBox("", Model.ToString("d"), new { @class = "date" })

您可以從此處下載jQuery UI下載jQuery UI

並且,您可以在此處了解有關jQuery DatePicker的更多信息: jQuery DatePicker

你可以這樣做

@Html.EditorFor(model => model.ADate)

<style type="text/css">

#ADate
{
 @* your css properties goes here *@
}
</style>

這適用於MVC3 Razor

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM