我有一个跨度,其值是通过knockout.js设置的:
<span id="total" data-bind="text: total"></span>
只要滑块更改值,就会设置此项。所有这些都在BeginForm中。现在我的问题是如何将这个(通过模型绑定)传递给控制器。如何在提交模型中获取此值,以便在调用Action时绑定它?
修改
好的,让我重新解释一下我的问题。我有一个强类型的cshtml文件到模型。现在,此模型的属性(Total)绑定到隐藏字段以作为基值:
@Html.HiddenFor(model => model.Total, new { id = "base-total" })
现在在这个cshtml中,有一个滑块,它根据滑块和基本总数将span的值更改为计算。
<span id="total" data-bind="text: total"></span>
我需要通过js更改,因为每次移动滑块时都无法重新加载页面。所以现在我的问题是显示被更改但实际模型值没有,因此当我提交时,模型仍然具有基本总值。
如何将通过js更改的值传递给模型?如果这不是正确的方法,你能建议我尝试一下吗?
答案 0 :(得分:0)
您可以这样做,即在提交表单时手动将JS模型发送到服务器。
例如:
<form data-bind="submit: doSomething">
... form contents go here ...
<span id="total" data-bind="text: total"></span>
<button type="submit">Submit</button>
</form>
<script type="text/javascript">
var viewModel = {
doSomething : function(formElement) {
// ... now do something
var data = JSON.stringify(
{
total: self.total // for example.
}); // prepare request data
$.post("/api/your-service", data, function(response) // sends 'post' request
{
// on success callback
self.responseJSON(response);
})
}
};
</script>