![](/img/trans.png)
[英]How to use Razor Page Using Entity Framework as a partial view in _layout.cshtml file in ASP.NET Core Razor Pages project?
[英]How to pass value from partial view to shared view _Layout.cshtml in asp.net MVC?
有一个捕获异常的控制器。 我想将错误消息传递给_Layout.cshtml中的通用javascript,以便应用于所有页面。 完全可以确定该值是否通过普通视图从_Layout.cshtml传递,例如@ViewBag =“ error message”; 在视图或ViewBag.ErrorMessage =“错误消息”中; 在控制器中,但无法在部分视图中使用。
为了将字符串消息从局部视图传递到_Layout.cshtml,我应该怎么做?
不确定您要做什么。 但是您可以在局部视图中放置一个脚本块,该脚本块一旦呈现就运行全局javascript函数,其中可能包含消息或其他数据。
例如,在_Layout中,您有:
<script>
function ShowError(message) {
alert(message);
}
</script>
然后在您的部分中,您有:
<script>
// check for existence of error and if so
ShowError(ErrorMessage);
</script>
如果要在同一请求期间将数据从局部视图传递到其布局,则可以通过ViewBag
对象这样做:
部分视图文件
@{
ViewBag.ErrorMessage = "error message";
}
_布局文件
@if (ViewBag.ErrorMessage != null)
{
<script>
alert(@ViewBag.ErrorMessage);
</script>
}
如果要在控制器的操作中捕获异常,然后在重定向时传递错误消息,则可以使用TempData
来TempData
:
控制者
public ActionResult SomeAction(){
...
try{
....
}catch(Exception e){
TempData["errorMessage"] = e.Message;
return RedirectToAction("MaybeSomeOtherAction");
}
...
}
_layout文件用于“ MaybeSomeOtherAction”
@if (TempData["errorMessage"] != null)
{
<script>
alert(@TempData["errorMessage"]);
</script>
}
为错误设置通用属性;
public static class Common
{
public static bool ERROR {get;set;}
}
如果抛出异常或显示错误消息,则将此属性设置为true;否则,将其设置为true。
try
{
//Any Code
}
catch(Exception)
{
Common.ERROR = true;
return PartialView("_PartialView");
}
在_Layou文件,视图或_Partial视图中,可以在Document.Ready
检查此属性,如果该属性为true,则可以显示错误警报。
$(function(){
if(@Html.Raw(Json.Encode(@HelloWorldMvcApp.Common.ERROR)))
{
alert("error message");
return;
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.