mvc 部分视图 ajax,Javascript-ASP.NET MVC-将部分视图与另一个obj返回到Ajax

我正在用ASP.NET MVC编写一个单页Ajax应用程序-大量使用jQuery。 在整个应用程序中,我会执行以下操作:

JS:

$.ajax({

type: "GET",

url: "/Home/GetSomePartialView/",

data: someArguments,

success: function (viewHTML) {

$("#someDiv").html(viewHTML);

},

error: function (errorData) { onError(errorData); }

});

控制器C#:

public ActionResult GetSomePartialView(SomeArgumentModel someArguments)

{

return PartialView("_CaseManager");

}

这很好。 PartialView(在ajax success函数中)作为字符串返回,我可以将其推到页面上没问题。

现在,我想做的不仅是返回PartialView HTML字符串,还返回某种状态指示器。 这是一个权限问题-例如,如果某人试图进入他们没有权限的应用程序的一部分,我想返回一个不同于他们要求的PartialView,并在弹出窗口中显示一条消息告诉他们 为什么他们得到的视图与要求的视图不同。

所以-为此,我想执行以下操作:

控制器C#:

public ActionResult GetSomePartialView(SomeArgumentModel someArguments)

{

ReturnArgs r = new ReturnArgs();

bool isAllowed = CheckPermissions();

if (isAllowed)

{

r.Status = 400; //good status ... proceed normally

r.View = PartialView("_CaseManager");

}

else

{

r.Status = 300; //not good ... display permissions pop up

r.View = PartialView("_DefaultView");

}

return Json(r);

}

public class ReturnArgs

{

public ReturnArgs()

{

}

public int Status { get; set; }

public PartialViewResult View { get; set; }

}

JS:

$.ajax({

type: "GET",

url: "/Home/GetSomePartialView/",

data: someArguments,

success: function (jsReturnArgs) {

if (jsReturnArgs.Status === 300) { //300 is an arbitrary value I just made up right now

showPopup("You do not have access to that.");

}

$("#someDiv").html(jsReturnArgs.View); //the HTML I returned from the controller

},

error: function (errorData) { onError(errorData); }

});

该SORTA现在可以正常工作。 我在JavaScript(我希望看到的)中得到了一个不错的对象,但是我看不到如何获得PartialView属性的完整HTML字符串。

我真的只是在寻找与我自己返回PartialView一样的字符串。

(正如我在开头提到的,这是一个单页应用程序-因此我不能仅将它们重定向到另一个View)。

在此先感谢您的帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值