【问题标题】:knockout dropdown list pass selection to model in MVC5淘汰下拉列表将选择传递给 MVC5 中的模型
【发布时间】:2014-08-11 01:38:58
【问题描述】:

我在使用 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);
});

提前谢谢你

【问题讨论】:

  • 显示更多代码以及您遇到的问题的具体细节,或在 JSFiddle 中创建问题示例。这里没有足够的信息。
  • 用额外的 c# 代码编辑,

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


【解决方案1】:

好的,我知道了

如果我使用@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

【讨论】:

  • 你还记得你传递的selectList是空的吗?这对我有用 new List&lt;SelectListItem&gt;() 代替您的 (SelectList).Model.authlevellistItems 似乎您将通过 MVC 绑定一次,然后根据您的示例再次通过淘汰赛绑定。我对么?只是试图获得理解,而不是批评。谢谢
  • 据我记得 - 已经有一段时间了 - 我在负载上使用剃刀语法,这是 MVC 模型绑定,然后通过 kncokout 和 json 处理所有异步 - 你可能无法使用剃须刀和绑定与敲除加载和异步
猜你喜欢
  • 2017-12-10
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 2018-04-18
  • 2012-11-18
  • 2014-10-26
  • 2015-11-05
  • 1970-01-01
相关资源
最近更新 更多