【发布时间】:2015-07-31 08:54:18
【问题描述】:
我有一个使用 JavaScript 更新本地对象数组的网页,我想导航到另一个页面,传递对象数组,这被转换为一个列表,我使用 Ajax.Post 可以正常工作,但是,我只希望返回视图(模型)像使用@Html.ActionScript 或@Url.Action 一样显示页面。但它会返回到调用函数,并带有一个构建的页面。
有没有办法将 post 函数调用为“即发即忘”类型的调用?
或者有没有办法调用@Html.ActionScript 或@UrlAction,将复杂数组作为参数传递?
这是我正在使用的一些代码
JS
$.ajax({
url: "/Home/About",
type: "POST",
data: JSON.stringify({ 'clients': clients }),
dataType: "json",
contentType: "application/json; charset=utf-8",
traditional: true,
success: function (data) {
alert(data);
},
error: function (data){
alert(data);
},
done: function (data) {
alert(data);
}
});
控制器
[HttpPost]
public ActionResult About(List<ClientDataModels> clients)
{
//Do something, all i need to do is pass the clients
//to the view, and then dynamically add items based
//on the content
return View(clients);
}
关于.cshtml
@using SST.Monitoring.Models
@model IEnumerable<ClientDataModels>
@{
//Layout = null;
ViewBag.Title = "About";
}
<h2>@ViewBag.Title.</h2>
<h3>@ViewBag.Message</h3>
<div class="container" style="width:900px">
@if(@Model != null)
{
foreach ( var client in @Model )
{
<div style="width:150px; float:left;">
<div class="tile-container">
<div class="tile bg-cyan fg-white" data-role="tile">
<div class="tile-content iconic">
<span class="icon mif-display mif-2x"></span>
<span id="ClientCount" class="tile-badge bg-darkBlue">0</span>
<span class="tile-label">client.ClientGroup</span>
</div>
</div>
</div>
</div>
}
}
</div>
返回给 ajax 调用的页面具有我期望的 3 个项目(tiles),但我希望它只是触发并忘记,并让视图像使用 @html.actionscript 一样显示还是事件只是一个 href 链接?
【问题讨论】:
标签: javascript ajax asp.net-mvc