我在我的模型中使用DataType.Date属性,在我的视图中使用EditorFor.这在Internet Explorer 8和Internet Explorer 9中运行良好,但在谷歌浏览器中它显示日期选择器,而不是显示值,它只是在褪色的灰色文本中显示"月/日/年".
为什么Google Chrome不会显示价值?
模型:
[DataType(DataType.Date)]
public Nullable<System.DateTime> EstPurchaseDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
视图:
<td class="fieldLabel">Est. Pur. Date</td>
<td class="field">@Html.EditorFor(m=>m.EstPurchaseDate)</td>
Run Code Online (Sandbox Code Playgroud)
为什么我不能传入html属性EditorFor()
?例如;
<%= Html.EditorFor(model => model.Control.PeriodType,
new { disabled = "disabled", readonly = "readonly" }) %>
Run Code Online (Sandbox Code Playgroud)
我不想使用元数据
更新:解决方案是从视图中调用它:
<%=Html.EditorFor( model => model.Control.PeriodEndDate, new {Modifiable=model.Control.PeriodEndDateModifiable})%>
Run Code Online (Sandbox Code Playgroud)
并ViewData["Modifiable"]
在我的自定义EditorTemplates/String.ascx中使用,其中我有一些视图逻辑,确定是否将readonly和/或disabled属性添加到输入传入的匿名对象EditorFor()
是一个被调用的参数additionalViewData
,其属性被传递给编辑器模板ViewData
采集.
有没有办法使用@ Html.EditorFor 编写Html5占位符,或者我应该只使用TextBoxFor扩展名,即
@Html.TextBoxFor(model => model.Title, new { @placeholder = "Enter title here"})
Run Code Online (Sandbox Code Playgroud)
或者编写我们自己的自定义扩展是否有意义,可以通过DataAnnotations使用"描述"显示属性(类似于此)?
当然,同样的问题也适用于'自动对焦'.
我想在编辑页面中使用EditorFor进行readOnly.
我尝试将readonly和disabled设置为:
<div class="editor-field">
@Html.EditorFor(model => model.userName, new { disabled = "disabled", @readonly = "readonly" })
</div>
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用.如何禁用编辑此字段?
谢谢.
我可以在View上设置EditorFor控件的宽度吗?
我设置了一些参数:
[Required, DisplayName("Payee Name"), StringLength(50)]
public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)
但是,我似乎无法设置渲染的文本框的宽度.
<table width="300" border="0" cellpadding="3" cellspacing="0">
<tr>
<td>
<%=Html.LabelFor(m => m.Name)%>
</td>
<td>
<%=Html.EditorFor(m => m.Name)%>
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
这可以以某种方式完成吗?
我试过了:
<%=Html.EditorFor(m => m.Name, new {width=50)%>
Run Code Online (Sandbox Code Playgroud)
但没有快乐......
我目前正在为ASP.NET MVC中的网站构建Admin后端.
在ASP.NET MVC应用程序中,我开始使用'EditorFor'辅助方法,如下所示:
<div id="content-edit" class="data-form">
<p>
<%= Html.LabelFor(c => c.Title) %>
<%= Html.TextBoxFor(c => c.Title)%>
</p>
<p>
<%= Html.LabelFor(c => c.Biography) %>
<%= Html.EditorFor(c => c. Biography)%>
</p>
</div>
Run Code Online (Sandbox Code Playgroud)
在模型中,"传记"字段已经用以下内容进行了装饰:[UIHelper("Html")].
我有一个'Html'局部视图(在Views/Shared/EditorTemplates下):
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.XML.Linq.XElement>" %>
<textarea class="html">
<%= Model.ToString() %>
</textarea>
Run Code Online (Sandbox Code Playgroud)
现在我想将'textarea'的'ID'属性设置为字段的名称,如下所示:
<textarea id="Biography" class="html">
...
</textarea>
Run Code Online (Sandbox Code Playgroud)
但是我无法通过当前的设置看到这样做的方法.
我能想到的只是创建一个'Html'ViewModel,它包含'Value'属性和'ControlID'属性.
但是如果我基于这个视图,而不是'System.XML.Linq.XElement',它将不再与'EditorFor'辅助方法兼容,我必须手动完成所有操作.
有没有人有类似的问题呢?
鉴于此模型,是否可以使用Html.EditorFor()将文件上传输入元素呈现给页面?我玩了属性FileName的数据类型,它肯定会影响渲染的编辑器表单.
public class DR405Model
{
[DataType(DataType.Text)]
public String TaxPayerId { get; set; }
[DataType(DataType.Text)]
public String ReturnYear { get; set; }
public String FileName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
强类型*.aspx页面看起来像这样
<div class="editor-field">
<%: Html.EditorFor(model => model.FileName) %>
<%: Html.ValidationMessageFor(model => model.FileName) %>
</div>
Run Code Online (Sandbox Code Playgroud) 我的ViewModel有一个属性,它是我的另一个模型实体的集合,在本例中是CategoryTags(并且每个标记都有一个Tag和一个ID).
1)我是否理解Html.EditorFor()没有可以为ICollection创建的UI?
2)假设#1,我决定创建一个EditorTemplate,这是一个文本框,我的用户可以键入以逗号分隔的标记名称,jquery将自动完成.我是否必须传回标签名称列表(或其各自的ID),然后在POST时将它们解析回CategoryTags propety?
谢谢!
我编写了一个EnumDropDownFor()帮助器,我想与EditorFor()一起使用.我刚刚开始使用EditorFor(),所以对模板的选择方式有点困惑.
我的Enum.cshtml编辑器模板如下:
<div class="editor-label">
@Html.LabelFor(m => m)
</div>
<div class="editor-field">
@Html.EnumDropDownListFor(m => m)
@Html.ValidationMessageFor(m => m)
</div>
Run Code Online (Sandbox Code Playgroud)
如果没有明确定义要使用的模板,是否有任何方法可以使用默认模板,只要将Enum传入EditorFor()?
我有一个View,其中模型有一组项目.然后我有一个EditorFor模板,负责为用户创建一个下拉列表,为集合中的每个项目选择一个有限数量的值:
@model Consultants.Models.ProgramSkill
<tr>
<td>@Model.Program.Name
</td>
<td>@Model.Program.Category
</td>
<td>
@Html.DropDownListFor( model => model.Level, new SelectList(new[] { 0, 1, 2, 3, 4, 5 }, Model.Level))
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
但是我宁愿让radiobuttons做同样的事情,这可能在MVC 3中吗?如果是这样,怎么样?
editorfor ×10
asp.net-mvc ×6
c# ×2
asp.net ×1
html ×1
html5 ×1
radio-button ×1
readonly ×1
viewmodel ×1