首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用EditorFor/TextBoxFor/TextBox辅助对象的名称中带有破折号的自定义属性

使用EditorFor/TextBoxFor/TextBox辅助对象的名称中带有破折号的自定义属性
EN

Stack Overflow用户
提问于 2011-06-30 03:02:40
回答 1查看 8.8K关注 0票数 19

我正在使用Knockout-JS将我视图中的属性绑定到我的视图模型。Knockout-JS使用名为“data-bind”的自定义属性,您必须将该属性附加到您想要在其中绑定以查看模型对象的控件。

示例:

<input type='text' name='first-name' data-bind='value: firstName'/>

注意'data-bind‘属性。

在我的视图渲染中,我在渲染具有此属性的文本框时遇到了问题。我知道Html.EditorFor、Html.TextBoxFor和Html.TextBox帮助器都有一个匿名对象,您可以用它来指定自定义属性。这个实现的唯一问题是C#不允许使用破折号作为变量名,所以不能编译:@Html.EditorFor(m => m.FirstName,new {=>-m.FirstName= "value: firstName“});

我唯一能想到的就是这个(在view-model中):

public class DataBindingInput
{
     public string Value { get; set; }
     public string DataBindingAttributes { get; set }
}

public class MyViewModel
{
    ...
    public DataBindingValue firstName { get; set; }
    ....
}

和一个名为“DataBindingInput.cshtml”的视图模板:

@model DataBindingInput
<input type='text' data-binding='@Model.DataBindingAttributes' value='@Model.Value'>

唯一的问题是我失去了输入名称的自动生成,所以它不能在回发上工作,因为模型绑定器不知道如何绑定它。

我怎么才能让它工作呢?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6525838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档