Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 我无法使用JSON返回PartialView_Jquery_Asp.net Mvc_Json - Fatal编程技术网

Jquery 我无法使用JSON返回PartialView

Jquery 我无法使用JSON返回PartialView,jquery,asp.net-mvc,json,Jquery,Asp.net Mvc,Json,我一直在使用json寻找返回的partialview。但是我只能看到部分视图的名称为html 如果用户名和密码不为空,则希望重定向到PartialView [HttpGet] public ActionResult Index() { return View(); } 索引视图: <script type="text/javascript"> function test() { var veri = { KullaniciAd: $('#KullaniciAd').val(),

我一直在使用json寻找返回的partialview。但是我只能看到部分视图的名称为html

如果用户名和密码不为空,则希望重定向到PartialView

[HttpGet]
public ActionResult Index()
{
return View();
}
索引视图:

<script type="text/javascript">
function test() {

var veri = {
KullaniciAd: $('#KullaniciAd').val(),
Sifre: $('#Sifre').val(),
};

$.ajax({
url: "/Home/Menu",
type: "POST",
dataType: "json",
contentType: 'application/json',
data: JSON.stringify(veri),
success: function (mydata) {

$("#message").html(mydata);
},
error: function () {
$("#message").html("error");
}
});

return false;

}
</script>

<input type="text" id="KullaniciAd" name="KullaniciAd" />
<input type="password" id="Sifre" name="Sifre" />
<input type="button" onclick="test()" value="Giriş" />


<div id="message"></div>

这是因为您只是将
\u MenuPartial
-string
作为
Json
数据返回

如果要返回
JSON
,则返回
JsonResult
,而不是
ActionResult

下面的代码也应该可以工作-最终,浏览器将从服务器获得
HTML
字符串作为
ajax
调用结果

public ActionResult Menu(MyModel model)
{
    if (model.KullaniciAd != null && model.Sifre != null)
    {
        return View("_MenuPartial");

    }
    return null;
}

您需要将视图渲染为字符串

  public string RenderRazorViewToString(string viewName, object model)
  {
    ViewData.Model = model;
    using (var sw = new StringWriter())
    {
      var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
      var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
      viewResult.View.Render(viewContext, sw);
      viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);
      return sw.GetStringBuilder().ToString();
     }
  }
内部控制器

var stringView = RenderRazorViewToString("_MenuPartial",model)
return Json(stringView , JsonRequestBehavior.AllowGet);
看看我的答案
var stringView = RenderRazorViewToString("_MenuPartial",model)
return Json(stringView , JsonRequestBehavior.AllowGet);