asp.net-mvc – 在MVC中将值从Controller传输到Shared View
发布时间:2020-05-24 22:36:01 所属栏目:asp.Net 来源:互联网
导读:我需要从控制器发送一些值到共享视图以显示在顶部 [HttpPost] [Route(login)] public async TaskActionResult Login(LogInRequest logInRequest) { IEnumerableUserClaim UserClaims = null; User user =
|
我需要从控制器发送一些值到共享视图以显示在顶部 [HttpPost]
[Route("login")]
public async Task<ActionResult> Login(LogInRequest logInRequest)
{
IEnumerable<UserClaim> UserClaims = null;
User user = null;
if (ModelState.IsValid)
{
user = await GetUserByEmailAndPassword(logInRequest.UserName,logInRequest.Password);
if (user.Id != 0)
{
showMenu = await ShowLoanMenu(logInRequest);
if (showMenu)
{
******** I need to send showMenu and user.Name to shared view
return RedirectToAction(Constants.Views.SearchView,Constants.Views.LoanDriverController);
}
}
.....
return View(logInRequest);
}
我不想使用TempData,viewdata,viewbag或session,我如何通过查询字符串或添加到模型来发送它. 这是布局之一: <ul>
<li class="logo">
<img src="~/Content/Images/logo.png" alt="" />
</li>
<li class="nav-item">
*** @if(showmenu is true)
{
<ul>
@Html.ActionLink("Loan Driver","Index","Home",new { area = "" },new { @class = "navbar-brand" })
</ul>
}
</li>
</ul>
这是另一种布局: <div class="header">
<div class="master-container">
<div class="heading">Garage</div>
<div class="primary-nav">
<ul>
<li>******show name of the person</li>
<li>@Html.ActionLink("Logout","logout","Home")</li>
</ul>
</div>
</div>
解决方法我想你想要当前的请求,而不是所有的请求,所以接受的答案不是正确的方法.要在单个请求的范围内与视图或子控制器共享数据,最简单的方法是将数据放入HttpContext.Items.在同一请求期间,所有视图和子控制器共享此项.HttpContext.Items["UIOptions"] = new UIOptions { ShowMenu = true };
您可以使用扩展名对此进行抽象: public static class HttpContextExtensions
{
public static UIOptions GetUIOptions(this HttpContext httpContext)
{
var options = httpContext.Items["UIOptions"] ?? (object) new UIOptions();
httpContext.Items["UIOptions"] = options;
return options;
}
}
然后在您的控制器中,设置选项 HttpContext.GetUIOptions().ShowMenu= true 在您的视图中,像这样访问它: ViewContext.HttpContext.GetUIOptions() 我通常会进一步抽象,以便您使用类似的属性对其进行配置 [UIOptions(ShowMenu=true)]
public ActionResult MyAction()
{
return View();
}
因此,您编写了一个ActionFilter,它检查操作的属性,并在ActionExecuting阶段使用属性属性设置httpContext.GetUIOptions()对象的属性. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET Web API,Web服务发现和客户端创建
- ASP.NET C#列出哪些以及何时?
- asp.net-mvc – Web API – 默认呈现Razor视图?
- ASP.NET:这个HttpModule有什么作用? System.ServiceModel
- asp.net – 如何冻结GridView标题?
- regex – RegularExpressionAttribute – 如何使它不区分大
- asp.net-mvc-3 – 如何在乌节项目中完成多租户
- asp.net-mvc – 有一个强大的方法来删除ASP.NET MVC中的Mod
- asp.net-mvc-2 – 为什么mvc Html.HiddenFor不渲染我的字段
- 在ASP.NET MVC网站中无法获取详细的错误信息
推荐文章
站长推荐
- asp.net – 在aspnet核心1应用程序的逻辑层中获取
- asp.net – 在Web.Config的Location Path元素中指
- asp.net – 使用Global.asax有什么优点和缺点?
- asp.net-mvc – 在ASP.NET MVC中调用Session_End
- 与asp.net mvc的dotnetopenauth证明太沮丧使用
- asp.net – 如何在x64中使用WebDev.WebServer.ex
- asp.net-mvc – 从视图重定向到另一个视图
- 使用ASP.NET SDK将文件上载到S3存储桶的文件夹
- asp.net – AWS SNSClient发布请求的超时错误
- asp.net – 有没有办法在Web Api控制器中处理表单
热点阅读
