通过 jquery ajax 更新 viewModel
我想使用 asp.net mvc 实现一个产品。
我的产品分为几个模块,我想使用 jquery 选项卡小部件来指导用户完成提交。
我的 ProductController 将 viewModel 对象列表发送到产品视图。
所以我的产品视图是这样的:
@model IList<View.Products.Modules.IModuleView>
<script type="text/javascript">
$(document).ready(function () {
$("#tabs").tabs({ ajaxOptions:
{
type: 'POST',
cache: false
}
});
});
</script>
<div id="tabs">
<ul>
<li><a href="#fragment-1"><span>Tab1</span></a></li>
<li><a href="#fragment-2"><span>Tab2</span></a></li>
<li>@Html.ActionLink("Result","Result","Product")</li>
</ul>
<div id="fragment-1">
@{
var viewModelA = Model.Where(c => c.GetType() == typeof(WebMvcUI.Models.ModelA)).First();
var viewModelB = Model.Where(c => c.GetType() == typeof(WebMvcUI.Models.ModelB)).First();
var viewModelC = Model.Where(c => c.GetType() == typeof(WebMvcUI.Models.ModelC)).First();
}
@Html.Partial("viewA", viewModelA)
@Html.Partial("viewB", viewModelB)
@Html.Partial("viewC", viewModelC)
</div>
<div id="fragment-2">
Lorem ipsum dolor...
</div>
</div>
到目前为止,一切都很好。当用户单击最后一个选项卡时,他会调用我的 ProductController 上的操作 Result。这是我的问题:收集部分视图的所有表单信息、将其发送回控制器并更新我的 viewModel 的最佳方法是什么?
感谢您的任何建议!
I'd like to implement a product using asp.net mvc.
My Product is devided in several modules and i want to use the jquery tab widget to guide the user trough the submission.
My ProductController sends a list of viewModel objects to the product view.
So my product view looks like this:
@model IList<View.Products.Modules.IModuleView>
<script type="text/javascript">
$(document).ready(function () {
$("#tabs").tabs({ ajaxOptions:
{
type: 'POST',
cache: false
}
});
});
</script>
<div id="tabs">
<ul>
<li><a href="#fragment-1"><span>Tab1</span></a></li>
<li><a href="#fragment-2"><span>Tab2</span></a></li>
<li>@Html.ActionLink("Result","Result","Product")</li>
</ul>
<div id="fragment-1">
@{
var viewModelA = Model.Where(c => c.GetType() == typeof(WebMvcUI.Models.ModelA)).First();
var viewModelB = Model.Where(c => c.GetType() == typeof(WebMvcUI.Models.ModelB)).First();
var viewModelC = Model.Where(c => c.GetType() == typeof(WebMvcUI.Models.ModelC)).First();
}
@Html.Partial("viewA", viewModelA)
@Html.Partial("viewB", viewModelB)
@Html.Partial("viewC", viewModelC)
</div>
<div id="fragment-2">
Lorem ipsum dolor...
</div>
</div>
So far, so good. When the user clicks on the last tab he invokes the action Result on my ProductController. And here is my Question: What is the best way to collect all form information of my partial views, send it back to the controller and update my viewModels?
Thanks for any suggestions!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是我当前的解决方案:
(我的模块共享一种表单,Presenter 对象存储在会话中)
jQuery:
控制器:
This is my current solution:
(my modules share one form and the Presenter object is stored in the session)
the jQuery:
the Controller: