我刚刚开始使用ASP.NET MVC 3,我试图在创建/编辑视图上为ViewModel上的字符串属性渲染以下HTML.
<input id="PatientID" name="PatientID" placeholder="Patient ID" type="text" value="" maxlength="30" />
Run Code Online (Sandbox Code Playgroud)
每个值绑定到ViewModel上的属性,id和name是属性名称,占位符是Display属性,value是属性的值,maxlength是StringLength属性.
我没有用我的每个字符串属性键入上面的HTML和正确的值,而是认为我会尝试使用SingleLineTextBox的名称创建一个EditorTemplate,并在我的字符串属性上使用UIHint,或者在调用EditFor时传递视图的名称.到目前为止一直很好,除了我无法弄清楚如何从StringLength属性中获取maxlength值.
这是我到目前为止的代码:
<input id="@ViewData.ModelMetadata.PropertyName" name="@ViewData.ModelMetadata.PropertyName" placeholder="@ViewData.ModelMetadata.DisplayName" type="text" value="@ViewData.Model" maxlength="??" />
Run Code Online (Sandbox Code Playgroud)
如您所见,不确定如何设置maxlength值.谁知道怎么样?
另外,我是最好的方式吗?正如我之前所说,我可以自己为页面上的每个属性写出纯HTML.我看用TextBoxFor它没有设置最大长度,并加入一些验证标记的HTML输出,因为我不想StringLength属性.我看到的另一个选项是HTML类的扩展/帮助.