2009-01-28 63 views
7

目前,当我想设置HTML属性,如最大长度,并自动完成,我必须使用以下语法:MAXLENGTH设置和其它的HTML属性使用ASP.NET MVC辅助方法

<%= Html.TextBox("username", ViewData["username"], new { maxlength = 20, autocomplete = "off" }) %> 

有没有办法做到这不必显式设置ViewData [“username”]部分?换句话说,我想依赖于辅助方法的自动加载例程,而不是必须明确告诉它从ViewData加载哪个字段。

回答

25

只是通过“零”作为第二个参数:

<%= Html.TextBox("username", null, new { maxlength = 20, autocomplete = "off" }) %> 
0

是的,但你必须使用ViewData.Model代替ViewData.Item()

在控制器的代码应该是这样的(SRY 4 VB.NET代码)

Function Index() 
    ViewData("Title") = "Home Page" 
    ViewData("Message") = "Welcome to ASP.NET MVC!" 

    Dim user As New User 

    Return View(user) 
End Function 

现在你可以在视图中执行此

<%=Html.TextBox("username", Nothing, New With {.maxlength = 30})%> 

注意,用户对象具有公共属性的用户名

心连心

0

我用如下结构:

<%= Html.TextBox("username", "", new { @maxlength = "20", @autocomplete = "off" }) %> 
+0

这不会持续视图状态。如果提交后,我想向用户显示验证错误?这样做会清除“用户名”文本框并强制用户从头开始。 – 2009-01-28 23:20:14

0

对于设置文本框的最大长度,你可以通过“”或者为null,二参数并设置html属性(maxlength)作为第三个参数

<%=Html.TextBox("username", "", new { @maxlength = 10 }) %> 
相关问题