knockout下拉列表将选择传递给MVC5中的模型

时间:2014-06-20 10:09:08

标签: asp.net-mvc razor knockout.js

我遇到了knockoutjs下拉列表的问题,我的razor视图中有一个MVC 5应用程序,它正在被淘汰出局。

<select name="alddlname" id="alddl" 
    data-bind="
        options: authorityLevel, 
        optionsText: 'AuthorityLevel', 
        optionsValue: 'aid', 
        value: aid
    ">
</select> 

我会链接到使用所选项目并将其传递给模型属性

public List<authorityLevel> authLevellistItems { get; set; }
public string SelectedAuthType { get; set; }

我想将模型绑定到下拉列表,以便将selectedAuthType设置为值

使用此

从淘汰赛中弹出下拉列表
var authorityLevelList = Html.Raw(JsonConvert.SerializeObject(ViewBag.authorityLevelDDL));

$(document).ready(function ()
{
    var vm = new AppViewModel();            
    vm.authorityLevel = ko.mapping.fromJS(@authorityLevelList);
    ko.applyBindings(vm);
});

提前谢谢

1 个答案:

答案 0 :(得分:8)

好的,所以我已经弄明白了

如果我使用@html.DropDownListFor帮助器并仍然从敲除绑定我的数据属性我有一个由敲除json数组对象填充的DropDown列表,但是然后也将它绑定到MVC 5模型然后可以传递返回控制器并插入数据库。

// data_bind部分是knockout.js部分,其余部分是razor c#view helper

@Html.DropDownListFor(m => m.SelectedAuthType, 
        (SelectList)Model.authlevellistItems, 
new { id = "alddl", data_bind = " options: authorityLevel, optionsText: 'AuthorityLevel', optionsValue: 'aid'" }) 
希望这对别人有帮助,我的问题不仅仅是浪费时间。 谢谢A