【发布时间】:2017-04-06 18:11:51
【问题描述】:
我已经在我的视图中动态创建了单选按钮,并且我正在尝试将检查的值传递给我的控制器。当我的控制器被击中时,代理代码字符串为空,我不知道如何获取该值,以便将其发送到我的控制器。
编辑我的单选按钮是在 foreach 中生成的,我认为这可能会导致难以达到该值。
MVC控件渲染的html是这样的
<div>
<input name="XXXXX" type="radio" value="{ data_bind = checkedValue: $data,checked: $root.AgentCode }">
</div>
foreach (var code in Model.ActiveAgentCodes)
{
<div>
@Html.RadioButton(code.AgentCode, new { data_bind="checkedValue: $data,checked: $root.AgentCode"})
@Html.RadioButton(code.AgentCode, new {data_bind="checkedValue: $data,checked: $root.AgentCode"}) }
我的淘汰赛 ViewModel 看起来像这样。
function ViewModel(){
var self = this;
self.AgentCode = ko.observable();
};
var viewModel = new ViewModel();
ko.applyBindings(viewModel);
我的控制器中的 post 方法看起来像这样
[HttpPost]
public ActionResult GetAgentCodeForHomeController(string AgentCode)
{
return RedirectToAction("Home", "Home");
}
在我看来,我是这样发布的
@using (Html.BeginForm("GetAgentCodeForHomeController", "ChangeAccount"))
{
@Html.RadioButton(code.AgentCode, new {data_bind="checkedValue: $data,checked: $root.AgentCode"})
@Html.HiddenFor(model => model.AgentCode, new { data_bind = "text:AgentCode" })
}
<button type="submit">OK</button>
【问题讨论】:
-
不太了解 mvc 中 html 的 razor 语法,所以您介意分享一下渲染的 html 吗?
-
@gkb 我已经包含了渲染的 html
-
你能把
data_bind(下划线)换成data-bind(破折号)然后试试吗? -
在 MVC 控件中,您必须使用 data_bind。当我尝试使用数据绑定时,你会得到红色的曲线。
标签: c# asp.net-mvc knockout.js