2011-09-18 47 views
3

我用這Html.Editorfor領域,編輯模板(位於共享\文件夾EditorTemplates我的解決方案)使只讀在MVC3

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.DateTime?>" %> 
    <%=Html.TextBox("", (Model.HasValue ? Model.Value.ToString("MM/dd/yyyy") : string.Empty), ViewData)%> 

,這在我看來

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

如何使這一領域的只讀視圖

回答

5
<%= Html.EditorFor(x => x.ModifiedDate, new { @readonly = "readonly" }) %> 

更新:

OK,現在你送到這裏,我的樣本項目的問題:

  1. 你必須在~/Views/Shared/EditorTempletes文件夾中的拼寫錯誤。它應該是~/Views/Shared/EditorTemplates
  2. 您的編輯器模板必須調用DateTime.ascx而不是DateTime.aspx。也正因爲如此的頭必須看起來像這樣(使用<%@ Control ...代替<%@ Page ...):

    <%@ Control 
        Language="C#" 
        Inherits="System.Web.Mvc.ViewUserControl<System.DateTime?>" 
    %> 
    <%= Html.TextBox(
        "", 
        (Model.HasValue ? Model.Value.ToString("MM/dd/yyyy") : string.Empty), 
        ViewData 
    ) %> 
    
+0

我已經試過了。它不工作。 – TJK

+0

@TJK,我剛剛測試過它,它工作得很好。也許你可以給我一個示例項目來說明這個問題,以便我可以看看它? –

+0

我如何發送示例項目? – TJK

2

裝飾從System.Web.Mvc命名空間中的[HiddenInput]屬性的屬性。

3

您可以使用:

@Html.DisplayFor() 
0

我用它來顯示只讀信息是這樣的:

@Html.DisplayFor(model => model.CadastradoEm, new { @class = "form-control" }) 
@Html.HiddenFor(model => model.CadastradoEm) 

您需要包括除顯示文本,事業隱藏輸入DisplayFor()不會生成回覆的控件 ;)