Razorを使用してビューからアクションへリダイレクトしようとしています。 ページの読み込み中にエラーが発生することがあります。MVCクリックしないでRazorを使用してビューからアクションへリダイレクト
私はtryとcatchブロックをリダイレクトしました。
ビュー:
@{
var x = Session["Username"];
try
{
if (x.ToString().Equals(item.User.UserName))
{
<td>
@Html.ActionLink("تعديل", "Edit", new { id = item.NotificationID }) |
@Html.ActionLink("التفاصيل", "Details", new { id = item.NotificationID }) |
@Html.ActionLink("حذف", "Delete", new { id = item.NotificationID })
</td>
}
}
catch (Exception e)
{
Response.Redirect("~/Views/Home/Index.cshtml");
//I want to redirect to an action, not view.
}
}
編集:
ホームコントローラ:
[Authorize]
[AuthorizeUserAccessLevel(UserRole = "Manager,Reviewer")]
public class HomeController : Controller
{
TheUnitOfEnternalAuditEntities db = new TheUnitOfEnternalAuditEntities();
public ActionResult Index()
{
var username = User.Identity.Name;
username = username.Replace("NCA\\", "");
User user = db.Users.Where(u => u.UserName.Equals(username)).First();
Session["UserName"] = username;
Session["UserID"] = user.UserID;
Session["UserFirstName"] = user.FirstName;
Session["UserFullName"] = user.FullName;
Session["UserRole"] = user.Role.RoleID;
var Departments = db.Departments.ToList();
ViewBag.Departments = Departments;
return View(db.Departments.ToList());
}
}
任意の提案ですか?
私はキャッチが起こるべき理由を理解し、コントローラで表示されないようにリダイレクトする方が良いと思います... –
あなたの 'if'ブロックはコントローラに属し、ビューには属しません。 –
@ArsenMkrtchyanユーザーがスローホームコントローラを通過せずにいくつかのページに移動すると、ホームコントローラのインデックスアクションに複数のセッションが格納されるという問題が発生します。家に帰る前にアドレスバーにアクション名を入力するユーザーもいます。 – askm