[英]How can I pass JSon object from my action filter class to my Onsuccess script
我有以下动作过滤器类,它在调用任何动作方法之前执行自定义授权检查: -
public class CheckUserPermissionsAttribute : ActionFilterAttribute
{
//code goes here
if (!repository.can(ADusername,Model,value ))
if (filterContext.HttpContext.Request.IsAjaxRequest())
{
var viewResult = new JsonResult();
viewResult.Data = (new { IsSuccess = "Unauthorized", description = "You are not authorized to perform this Action." });
filterContext.Result = viewResult;}
}
base.OnActionExecuting(filterContext);}}}
我有以下ajax.beginform
@using (Ajax.BeginForm("AddZone", "DataCenter",
new AjaxOptions
{
HttpMethod = "POST",
InsertionMode = InsertionMode.InsertBefore,
UpdateTargetId = "zonetableBody",
LoadingElementId = "progress3",
OnSuccess = "createsuccess",
OnFailure="createfail"
}))
OnSuccess脚本是: -
function createsuccess(data) {
if (data.IsSuccess == " Unauthorized") {
jAlert(data.description, 'Unauthrozed Access');
}
if (data.IsSuccess == "False") {
jAlert('Error Occured.' + data.description);
}
else {
jAlert('Record was added Successfully ', 'Creation Confirmation');
}
}
所以我认为如果用户点击Ajax.Beginform并且他没有所需的权限,那么actionfilter将返回一个Json,它将被传递给OnSuccess脚本,脚本将显示未经授权的消息。 但目前的情况是jAlert('Record was added Successfully ', 'Creation Confirmation');
将显示。那么任何人都可以建议我如何将Json从动作过滤器传递给Onsuccess脚本? 谢谢
删除空格女巫是“未授权”的第一个字符,并在第一个if
语句后使用else
语句,如下所示
function createsuccess(data) {
if (data.IsSuccess == "Unauthorized") {
jAlert(data.description, 'Unauthrozed Access');
}else
if (data.IsSuccess == "False") {
jAlert('Error Occured.' + data.description);
}
else {
jAlert('Record was added Successfully ', 'Creation Confirmation');
}
}
摆脱:OnSuccess =“createsuccess”,
在局部视图中传递一个脚本,该脚本在渲染后被触发。 它可以携带在控制器上创建并传递给视图的json对象。
当触发该函数时,它应该点击“createsuccess”并在必要时将json对象传递给它。
<script type="text/javascript">
$(document).ready(function () {
data = yourjsonobject;
createsuccess(data);
});
</script>
“yourjsonobject”将在初始化时在partialview上动态创建,或者您可以在控制器上创建它并将其传递给partialview。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.