cshtml视图无法渲染

时间:2014-07-09 12:42:45

标签: c# ajax asp.net-mvc razor

我正在使用带有剃刀引擎的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

2 个答案:

答案 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); 
}