将AngularJS与MVC SelectList一起使用最初没有选择任何值

时间:2015-04-16 06:13:01

标签: asp.net-mvc angularjs razor

我有一个具有MVC SelectList的类和一个指示所选值的int。

public class SampleClass {
      public SelectList ServicesAvailable {get; set;}
      public int ServiceIdSelected {get; set;}

      public SampleClass() {}
}

当您转到页面编辑项目时,您希望选择先前选择的项目。使用razor @ Html.DropDownListFor(...)这绝对没问题。但是,这个页面使用的是Angular,所以我正在使用:

<select style="width:40%;" chosen data-placeholder="Select a method" 
     no-results-text="'No service found'" ng-model="ServiceIdSelected" 
     ng-options="item.Value as item.Text for item in ServicesAvailable">
        <option value=""></option>
</select>

使用此Angular注释永远不会选择初始项目。我只能认为这是因为MVC SelectList的Value和Text属性都是字符串,Angular在后台执行类似ServiceIdSelected === item.Value的操作,因为一个是字符串,另一个是int,它是总是假的。

还有其他人遇到过这个问题吗?如果是这样,你是如何解决它的?我唯一的选择是将SelectList属性更改为List&lt;&gt;什么?

1 个答案:

答案 0 :(得分:0)

你可以查看这个小提琴,也许这可以帮助你。

<select 
            ng-model="Choice.SelectedOption"                 
            ng-options="choice.Name for choice in Choice.Options track by choice.ID"></select>

Fiddle for select

干杯克里斯托弗,