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

Ala*_*2.0 8 asp.net-mvc razor knockout.js

我有一个knockoutjs下拉列表的问题,我有一个MVC 5应用程序在我的剃刀视图,这是从敲门绑定.

<select name="alddlname" id="alddl" 
    data-bind="
        options: authorityLevel, 
        optionsText: 'AuthorityLevel', 
        optionsValue: 'aid', 
        value: aid
    ">
</select> 
Run Code Online (Sandbox Code Playgroud)

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

public List<authorityLevel> authLevellistItems { get; set; }
public string SelectedAuthType { get; set; }
Run Code Online (Sandbox Code Playgroud)

我想将模型绑定到下拉列表,以便将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);
});
Run Code Online (Sandbox Code Playgroud)

先感谢您

Ala*_*2.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'" }) 
Run Code Online (Sandbox Code Playgroud)

希望这会帮助别人,我的问题不仅仅是浪费时间.谢谢