eiu*_*165 8 asp.net-mvc html-helper view-helpers asp.net-mvc-3
我想在我的助手中访问TempData以获取flash消息(比如在ruby中)
我得到一个运行时错误
The name 'TempData' does not exist in the current context
Run Code Online (Sandbox Code Playgroud)
我的Flash.cshtml如下
@helper Show()
{
var message = "test message";
var className = "info";
if (TempData["info"] != null)
{
message = TempData["info"].ToString();
className = "info";
}
else if (TempData["warning"] != null)
{
message = TempData["warning"].ToString();
className = "warning";
}
else if (TempData["error"] != null)
{
message = TempData["error"].ToString();
className = "error";
}
<script>
$(document).ready(function () {
$('#flash').html('@HttpUtility.HtmlEncode(message)');
$('#flash').toggleClass('@className');
$('#flash').slideDown('slow');
$('#flash').click(function () { $('#flash').toggle('highlight') });
});
</script>
}
Run Code Online (Sandbox Code Playgroud)
在布局中我有
<section id="main">
@Flash.Show()
<div id="flash" style="display: none"></div>
@RenderBody()
</section>
Run Code Online (Sandbox Code Playgroud)
Jah*_*ine 13
TempData属于ControllerBase
类,它是控制器的基类,它不能被共享视图访问,后面没有控制器,
一种可能的解决方法是将控制器传递给助手方法或通过HtmlHelper访问它.
@helper SomeHelper(HtmlHelper helper)
{
helper.ViewContext.Controller.TempData
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7737 次 |
最近记录: |