我有一个AJAX表格&与该表单对应的操作方法。我希望这个表格保留[授权]。
AJAX表格:
@using (Ajax.BeginForm("Vote", "Rate", null ,
new AjaxOptions
{
InsertionMode = InsertionMode.Replace,
HttpMethod = "GET",
OnFailure = "searchFailed",
LoadingElementId = "ajax-loader",
UpdateTargetId = "searchresults",
},new { id = "voteForm" }))
{
<input type="radio" name="Stars" value="1">
<input type="radio" name="Stars" value="2">
<input type="radio" name="Stars" value="3">
<input type="submit" value="Vote" />
}
授权行动
[Authorize]
public ActionResult Vote(Rate rate)
{
if (ModelState.IsValid)
{
db.Rates.Add(rate);
db.SaveChanges();
}
return PartialView("_Vote");
}
当我点击提交按钮时,登录页面显示在UpdateTargetId(搜索结果)中,但它需要在新窗口中显示。
答案 0 :(得分:0)
这是因为您正在执行Ajax操作,所有结果都将反映在UpdateTargetId
内。
因此,您应该使用来自服务器的responseText检查用户在OnFailure
或OnSuccess
方法中未经授权的特定情况,并使用javascript将用户重定向到登录页面,即
location.href = '/login';