我正在使用带有剃刀引擎的ASP.net MVC。
我有一个带按钮的页面,当单击该按钮时,我使用Ajax在我的控制器中调用ActionResult
。 Ajax调用:
$.ajax({
type: "GET",
url: "/Home/Review",
success: function (data) {
//alert("yay");
}
});
我的ActionResult
方法很好,但它不会加载已编入的视图。
代码:
public ActionResult Review()
{
return View();
}
当点击Review()时,当前视图为Index.cshtml
我想在屏幕上呈现Review.cshtml
。 (它应该呈现为完整视图,而不是作为Index.cshtml内部的部分视图)
我试过了 - return View("Review");
return View("Review.cshtml");
return View("..\Views\Home\Review.cshtml);
我无法使用 - tml.BeginForm("Action", "Controller", FormMethod.Post);
(请参阅我的其他问题MVC submit button not firing)
答案 0 :(得分:2)
直接将回复写入屏幕
success: function (data) {
document.write(data) }
答案 1 :(得分:0)
在ajax之后,你应该渲染一个局部视图,将返回的结果添加到主视图(索引)。
<强> Index.cshtml 强>
$.ajax({
type: "GET",
url: "/Home/Review",
success: function (data) {
$("#container").html(data);
//alert("yay");
}
...
<div id="container"></div>
<强>控制器强>
public ActionResult Review()
{
return PartialView();
}
如果您想在ajax之后重定向,可以使用以下内容:
<强> Index.cshtml 强>
$.ajax({
type: "GET",
url: "/Home/Review",
success: function (data) {
window.location.href = data.url;
}
...
<强>控制器强>
public ActionResult Review()
{
return Json(new { url = "some url" }, JsonRequestBehavior.AllowGet);
}