[英]Step into: Stepping over non-user code : What is the meaning of this message?
[英]MVC 5 how to show message when a non-user visit the website?
我正在使用ASP.NET MVC 5创建程序。登录时需要该程序,并且页面内是订购页面。 如何制作此页面将显示一些字符串,例如“需要用户登录”。
就我现在的进度而言,我只知道放入[Authorize]属性
[Authorize]
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult PlaceOrder(Order orderDetail)
{
String message = "";
using (myDatabaseEntities1 myDatabase1 = new myDatabaseEntities1())
{
//WF
Double PriceOfF1 = (orderDetail.A_ChickenChop_BP) * 14.9;
Double PriceOfF2 = (orderDetail.A_ChickenChop_M) * 14.9;
Double PriceOfF3 = (orderDetail.A_Spaghetti_AH) * 10.9;
Double PriceOfF4 = (orderDetail.A_Spaghetti_P) * 10.9;
Double PriceOfF5 = (orderDetail.A_Spaghetti_S) * 10.9;
//CF
Double PriceOfF6 = (orderDetail.A_ChickenRice_CB) * 6.9;
Double PriceOfF7 = (orderDetail.A_ChickenRice_CW) * 6.9;
Double PriceOfF8 = (orderDetail.A_ChickenRice_D) * 6.9;
Double PriceOfF9 = (orderDetail.A_WantanMee_NS) * 6.9;
Double PriceOfF10 = (orderDetail.A_WantanMee_IS) * 6.9;
Double T_Price = orderDetail.OrderPrice;
T_Price = PriceOfF1 + PriceOfF2 + PriceOfF3 + PriceOfF4 + PriceOfF5 +
PriceOfF6 + PriceOfF7 + PriceOfF8 + PriceOfF9 + PriceOfF10;
if (T_Price > 1)
{
myDatabase1.Orders.Add(orderDetail);
myDatabase1.SaveChanges();
message = "The order has been placed";
orderDetail.IsPlaced = true;
}
else
{
message = "Please select at least one of the food";
orderDetail.IsPlaced = true;
}
}
ViewBag.Message = message;
return View();
}
}
当非用户单击此页面时,它将重定向到userlogin页面。 当非用户点击时,如何显示一条消息
这是解决方案之一。 在您要显示消息的页面上,在您希望消息显示的确切位置上添加以下代码
@if(!HttpContext.Current.User.Identity.IsAuthenticated)
{
<span class="your css class name">Please
<a href="@Url.Action("login action name")"> Login </a> to continue
}
没有什么方法可以做到的。 您可以在此方法内部检查用户是否已登录(在请求中有此信息),然后将其重定向到所需的页面。 它可以是登录页面,返回URL可以返回到他之前的页面,也可以是包含登录信息的页面-取决于您的需求。 只需输入google“ mvc5如何检查用户是否已登录”即可。 另一种方法是使用属性授权或添加一些自定义过滤器。
通过上述代码,您可以使用[授权]过滤器。 在“授权”过滤器中,您可以验证用户是否已经登录或登录的会话是否存在。
如果我正确理解了您的问题,那么您需要做的就是在“未经身份验证”的用户单击“下订单”时弹出对话框或模式,对吗? 如果是这种情况,请不要将用户重定向到您的“ PlaceOrder”发布方法,而是创建一个返回JSON状态(真或假)的GET方法,以检查通过身份验证的用户会话是否有效? -就这么简单。
或者,如果需要更优雅的方法,请创建一个自定义[Authorize],扩展“ AuthorizationFilterAttribute”,从中可以控制返回的视图或检查返回的HTTP状态
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.