如何在jquery中使用模型绑定
MVC模型绑定器在从我的页面中提取值并将它们作为复杂输入中的属性传递到我的操作方法方面做得非常好 我正在尝试创建一个购物车类型的页面,用户可以在其中配置行项目列表,然后提交整个订单 起初,当用户想要添加项目时,我使用Ajax表单——现有行项目的列表将传递回控制器,添加新的行项目,并返回列表的部分视图如何在jquery中使用模型绑定,jquery,asp.net-mvc-3,Jquery,Asp.net Mvc 3,MVC模型绑定器在从我的页面中提取值并将它们作为复杂输入中的属性传递到我的操作方法方面做得非常好 我正在尝试创建一个购物车类型的页面,用户可以在其中配置行项目列表,然后提交整个订单 起初,当用户想要添加项目时,我使用Ajax表单——现有行项目的列表将传递回控制器,添加新的行项目,并返回列表的部分视图 不幸的是,在提交Ajax表单后,您似乎无法重定向到另一个页面。不过,我不想在jQuery中这样做,因为我不想在MVC模型绑定器做得如此出色时显式地创建复杂对象列表 编辑:澄清一下,我的问题是: 我希
不幸的是,在提交Ajax表单后,您似乎无法重定向到另一个页面。不过,我不想在jQuery中这样做,因为我不想在MVC模型绑定器做得如此出色时显式地创建复杂对象列表 编辑:澄清一下,我的问题是: 我希望我的表单有2个操作,这两个操作都需要传递回行项目列表 我的理解是,我必须使用javascript至少执行其中一个操作。要么:
public string SomeMethod(ViewModel vm)
{
...
return "http://www.google.com";
}
在你看来
$.ajax({
url: "@(Url.Action("SomeMethod"))",
type: 'POST',
traditional: true,
data: { ViewModel: jsonObject },
success: function (result) {
window.location = result;
}
});
“不幸的是,在提交Ajax表单后,您似乎无法重定向到其他页面。”
这并不完全正确。您可以让控制器的操作方法返回javascript重定向的url字符串
public string SomeMethod(ViewModel vm)
{
...
return "http://www.google.com";
}
在你看来
$.ajax({
url: "@(Url.Action("SomeMethod"))",
type: 'POST',
traditional: true,
data: { ViewModel: jsonObject },
success: function (result) {
window.location = result;
}
});
您可以在视图中使用javascript重定向,该视图随表单提交返回。。。在您的视图的底部有类似的内容
@if(Model.ShouldRedirect)
{
<script type="text/javascript">
window.location = '/path/to/new/url';
</script>
}
@if(Model.ShouldRedirect)
{
window.location='/path/to/new/url';
}
您可以在视图中使用javascript重定向,并随表单提交返回。。。在您的视图的底部有类似的内容
@if(Model.ShouldRedirect)
{
<script type="text/javascript">
window.location = '/path/to/new/url';
</script>
}
@if(Model.ShouldRedirect)
{
window.location='/path/to/new/url';
}
好的,我想我知道你需要什么
- 从表单操作属性获取目标操作url
- 序列化表单以将其发送到控制器
$.ajax({
url: $('#FormID').attr('action'),
type: 'POST',
data: $('#FormID').serialize(),
success: function (result) {
window.location = result;
}
});
这里有一些文档信息好的,我想我明白你需要什么了
- 从表单操作属性获取目标操作url
- 序列化表单以将其发送到控制器
$.ajax({
url: $('#FormID').attr('action'),
type: 'POST',
data: $('#FormID').serialize(),
success: function (result) {
window.location = result;
}
});
这里有一些文档信息请澄清您的问题。我不知道你的问题是模型绑定、重定向还是什么…@DaveA,删除了最后一部分,并用更清晰的解释替换了它,更加清晰。但是你似乎已经有了两个有效的答案。@DaveA所以我注定要创建json对象来模仿model binder已经做过的事情?请澄清你的问题。我不知道你的问题是模型绑定、重定向还是什么…@DaveA,删除了最后一部分,并用更清晰的解释替换了它,更加清晰。但是你似乎已经有了两个有效的答案。@DaveA所以我注定要创建json对象来模仿model binder已经做过的事情?我仍然必须自己创建ViewModel json,对吗?还有什么方法可以让模型绑定器获得这些信息吗?我仍然需要自己创建ViewModelJSON,对吗?还有什么方法可以让模型绑定器获取这些信息吗?有什么方法可以将模型作为参数传入?将模型作为参数传递给what?进入对该url调用的action方法。您只需使用
@
像窗口一样输出它。location='@url.action(“action”,“Controller”,new{id=model.id})
;是否有方法将模型作为参数传递?将模型作为参数传递给what?到对该url调用的action方法中。您只需使用@
像窗口一样输出它。location='@url.action(“action”,“Controller”,new{id=Model.id})
;非常感谢。这正是我需要的。工作非常完美,而且我自己也不会在创建JSON对象时乱来。谢谢!这正是我需要的。可以完美地工作,而且不需要自己创建JSON对象。