Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 是否未选择一个收音机?_Asp.net Mvc_Knockout.js - Fatal编程技术网

Asp.net mvc 是否未选择一个收音机?

Asp.net mvc 是否未选择一个收音机?,asp.net-mvc,knockout.js,Asp.net Mvc,Knockout.js,我改变了方法,现在,我正确地得到了选择的无线电值 问题:初始化时选择了我的一个收音机(首先加载,然后用户可以更改选择),但收音机不是第一次选择的,如何正确初始化“已选择”? @model Demo.Web.ViewModels.HomeViewModel @{ ViewBag.Title = "Two Page"; } @using (Html.BeginForm("Index", "Two", FormMethod.Post, new Dictionary<string, obje

我改变了方法,现在,我正确地得到了选择的无线电值

问题:初始化时选择了我的一个收音机(首先加载,然后用户可以更改选择),但收音机不是第一次选择的,如何正确初始化“已选择”?

@model Demo.Web.ViewModels.HomeViewModel
@{
   ViewBag.Title = "Two Page";
}
@using (Html.BeginForm("Index", "Two", FormMethod.Post, new Dictionary<string, object> { { "data-bind", "submit:onSubmit" } }))
{

<table>
    <tr>
        <td>
            <div data-bind="foreach: items">
                <input type="radio" name="items" data-bind="attr: { value: id }, checked: $root.selected" />
                <span data-bind="text: name"></span>
            </div>
            <div data-bind="text: selected">
            </div>
        </td>
    </tr>
</table>

<input type="submit" name="send" value="Send" />
}

<script type="text/javascript">
var viewModel = {
    items: [
    { "id": 1, "name": "one", "selected": false  },
    { "id": 2, "name": "two", "selected": true },
    { "id": 3, "name": "three", "selected": false }
],
selected: ko.observable(),

    onSubmit: function(){                

        var x = this.selected();

        }
    };     

$(function() {                        
        ko.applyBindings(viewModel);
    });
@model Demo.Web.ViewModels.HomeViewModel
@{
ViewBag.Title=“两页”;
}
@使用(Html.BeginForm(“Index”,“Two”,FormMethod.Post,新字典{{“数据绑定”,“提交:onSubmit”}))
{
}
var viewModel={
项目:[
{“id”:1,“name”:“one”,“selected”:false},
{“id”:2,“name”:“two”,“selected”:true},
{“id”:3,“name”:“three”,“selected”:false}
],
选中:ko.observable(),
onSubmit:function(){
var x=this.selected();
}
};     
$(函数(){
应用绑定(视图模型);
});

当绑定到类型为
无线电的输入时,
选中的
在Knockout中绑定将尝试将输入的值写入绑定到的任何值。这个想法是,你们所有的无线电设备都被绑定在同一个可观测对象上

比如:

var viewModel = {
    items: [
        { id: 1, name: "one"  },
        { id: 2, name: "two" },
        { id: 3, name: "three" }
    ],
    selected: ko.observable()
};
绑定到UI,如:

<div data-bind="foreach: items">
    <input type="radio" name="items" data-bind="attr: { value: id }, checked: $root.selected" />
    <span data-bind="text: name"></span>
</div>

<div data-bind="text: selected"></div>

样本:

因此,在您的情况下,您应该能够将收音机与
$root.IsSelected
绑定,并使用它,而不是在项目之间循环


初始化它时,您可能希望查看是否选中了任何按钮,然后适当地填充根级别
IsSelected

如何初始化“IsSelected”在我的例子中,选择了一个收音机,用户可以编辑并更新它……我只需循环查看
项目
,直到我找到一个
选择的
为true
,并将顶级
选择的
设置为其
id
。如果你需要密码,请告诉我。