C# 如何使用viewbag对象并使用onclick进行修改?

C# 如何使用viewbag对象并使用onclick进行修改?,c#,.net,razor,knockout.js,C#,.net,Razor,Knockout.js,我有一个下拉列表,其中包含从ViewBag加载的选项。敲除是将ViewBag对象替换为空。我该怎么办 A.将(IEnumerable)ViewBag.States传递给淘汰赛和 B.修改onclick事件后的下拉列表,以显示已修改(IEnumerable)的状态 这就是我被困的地方。。。提前谢谢 CSHTML @(Html.DropDownList("State", (IEnumerable<SelectListItem>)ViewBag.States, "Any", new { @

我有一个下拉列表,其中包含从ViewBag加载的选项。敲除是将ViewBag对象替换为空。我该怎么办 A.将(IEnumerable)ViewBag.States传递给淘汰赛和 B.修改onclick事件后的下拉列表,以显示已修改(IEnumerable)的状态

这就是我被困的地方。。。提前谢谢

CSHTML

@(Html.DropDownList("State", (IEnumerable<SelectListItem>)ViewBag.States, "Any", new { @class = "fieldState", data_bind = "options: $root.setStates, optionsText: 'st', value: 'fullName'" }))
JS文件

self.setDropdown = ko.observable(new SetDropdown());

function SetDropdown(stateIS02, longName) {
    var self = this;

    self.setStates = ko.observableArray();

    this.st = stateIS02;
    this.name = longName;
}
我现在没有主意了


<p>
    State:
    <select data-bind="options: $root.states, optionsText: 'Name', optionsValue : 'Id', value: selectedState, optionsCaption: 'Choose...'"></select>
    <br />Selected State value:
    <span data-bind="text: selectedState"></span>
</p> 
<script>
    var stateData = @Html.Raw(Json.Encode(ViewBag.States));  
</script>
<script type="text/javascript">
    // Constructor for an object with two properties
    var State = function (id, name) {
        this.Id = id;
        this.Name = name;
    };
    var initialState = new Array();
    if (stateData.length > 0) {        
        for (var k = 0; k < stateData.length; k++) {
            initialState.push(new State(stateData[k].Value, stateData[k].Text));
        }
    }
    var viewModel = {
        states: ko.observableArray(initialState),
        selectedState: ko.observable() // Nothing selected by default
    };
    ko.applyBindings(viewModel);
</script>
声明:
所选状态值:

var stateData=@Html.Raw(Json.Encode(ViewBag.States)); //具有两个属性的对象的构造函数 变量状态=函数(id、名称){ 这个.Id=Id; this.Name=Name; }; var initialState=新数组(); 如果(stateData.length>0){ 对于(var k=0;k

声明:

所选状态值:

var stateData=@Html.Raw(Json.Encode(ViewBag.States)); //具有两个属性的对象的构造函数 变量状态=函数(id、名称){ 这个.Id=Id; this.Name=Name; }; var initialState=新数组(); 如果(stateData.length>0){ 对于(var k=0;k

声明:

所选状态值:

var stateData=@Html.Raw(Json.Encode(ViewBag.States)); //具有两个属性的对象的构造函数 变量状态=函数(id、名称){ 这个.Id=Id; this.Name=Name; }; var initialState=新数组(); 如果(stateData.length>0){ 对于(var k=0;k

声明:

所选状态值:

var stateData=@Html.Raw(Json.Encode(ViewBag.States)); //具有两个属性的对象的构造函数 变量状态=函数(id、名称){ 这个.Id=Id; this.Name=Name; }; var initialState=新数组(); 如果(stateData.length>0){ 对于(var k=0;k
经过数小时的研究,我终于找到了答案

我在javascript端的click事件上设置了数据绑定属性。我现在还在循环中使用push函数来设置状态

pageViewModel.setStates.push({ shortState : "VA", fullName: "Virginia"}); //will be in a loop
$("#State").attr('data-bind', "options: $root.setStates, optionsText: function(item) { return item.shortState; }, value: function(item){ return item.fullName;}");
ko.applyBindings(pageViewModel);

经过几个小时的研究,我终于明白了

我在javascript端的click事件上设置了数据绑定属性。我现在还在循环中使用push函数来设置状态

pageViewModel.setStates.push({ shortState : "VA", fullName: "Virginia"}); //will be in a loop
$("#State").attr('data-bind', "options: $root.setStates, optionsText: function(item) { return item.shortState; }, value: function(item){ return item.fullName;}");
ko.applyBindings(pageViewModel);

经过几个小时的研究,我终于明白了

我在javascript端的click事件上设置了数据绑定属性。我现在还在循环中使用push函数来设置状态

pageViewModel.setStates.push({ shortState : "VA", fullName: "Virginia"}); //will be in a loop
$("#State").attr('data-bind', "options: $root.setStates, optionsText: function(item) { return item.shortState; }, value: function(item){ return item.fullName;}");
ko.applyBindings(pageViewModel);

经过几个小时的研究,我终于明白了

我在javascript端的click事件上设置了数据绑定属性。我现在还在循环中使用push函数来设置状态

pageViewModel.setStates.push({ shortState : "VA", fullName: "Virginia"}); //will be in a loop
$("#State").attr('data-bind', "options: $root.setStates, optionsText: function(item) { return item.shortState; }, value: function(item){ return item.fullName;}");
ko.applyBindings(pageViewModel);

你没有混合服务器端MVC和客户端MVV你没有混合服务器端MVC和客户端MVV你没有混合服务器端MVC和客户端MVV你没有混合服务器端MVC和客户端MVV这是一个很好的解决方案,它可以工作,但我在烧了夜油后找到了答案。这是一个很好的解决方案,但我这是一个很好的解决方案,但我在燃烧了夜油并进入后得出了答案。这是一个很好的解决方案,但我在燃烧了夜油并进入后得出了答案。