【问题标题】:Using angular attributes with TextBoxFor in ASP.NET MVC在 ASP.NET MVC 中使用带有 TextBoxFor 的角度属性
【发布时间】:2014-05-15 06:33:48
【问题描述】:

我正在使用带有 AngularJs 的 ASP.NET MVC。我是 AngularJs 的新手,我正在尝试创建一个使用 angularjs 的表单。

首先我有一个登录表单,要求输入用户名和密码。

用户名使用Html.TextBoxFor如下图

@Html.TextBoxFor(m => m.UserName, new { ng-model="user.name" })

但 ide 将 ng-model 显示为红色错误。并在使用此更改运行时出错。

错误信息

帐户/登录 - c:\SVN HOME\ABC-SelfServe\src\ABC\Web\Views\Account\Login.cshtml(23):错误 CS0746:无效的匿名类型成员声明符。必须使用成员分配、简单名称或成员访问来声明匿名类型成员。

直到现在,每当我必须包含 html 属性时,我都会这样做并且它曾经可以工作。我用什么语法来包含 ng-.... 角度属性和剃须刀 TextBoxFor

【问题讨论】:

    标签: angularjs asp.net-mvc-4 razor


    【解决方案1】:

    new { ng-model="user.name" } 中的 - 不是有效的 C#。将其更改为ng_model,MVC 会将下划线转换为输出中的破折号。

    【讨论】:

    • razor 将Helper的html属性中的每一个_转换成-?
    • 是的,它奏效了。谢谢你。我意识到在使用 Angular 时使用 Html.TextboxFor 或类似的剃须刀助手毫无意义。我现在使用带角度的纯 html。再次感谢。
    • 是的。这是一个快捷方式,因为下划线实际上在属性中无效。也可以通过使用接受字典而不是对象的帮助器的重载来解决这个问题。
    • "-", "_" 和 ":" 属性中的所有都通过角度标准化。它们被视为帕斯卡大小写“标记”。 my_attr、my-attr 和 my:attr 都归一化为 myAttr。但是angular不会改变属性的html。
    猜你喜欢
    • 2011-08-28
    • 2011-06-18
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多