C# 帮助程序不工作(ASP.NET MVC)
我尝试在我的项目中创建一个助手。 这是我的代码:C# 帮助程序不工作(ASP.NET MVC),c#,asp.net,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Razor,我尝试在我的项目中创建一个助手。 这是我的代码: @using VrBlog.Models; @helper Render(Post post, System.Web.Mvc.HtmlHelper html, bool isAdmin, bool showComments) { <div class="postTitle"><a href="@Href("~/Views/Posts/Details/" + post.Id)">@post.Title</a&g
@using VrBlog.Models;
@helper Render(Post post, System.Web.Mvc.HtmlHelper html, bool isAdmin, bool showComments)
{
<div class="postTitle"><a href="@Href("~/Views/Posts/Details/" + post.Id)">@post.Title</a></div>
<div class="postContainer">
<div class="postTabs">
<div class="dateTab">
<div class="month">@post.DateTime.Value.ToString("MMM").ToUpper()</div>
<div class="day">@post.DateTime.Value.ToString("dd")</div>
</div>
<div class="commentsTab">
<a href="@Href("~/Views/Posts/Details/"+post.Id + "#comments")">@post.Comments.Count</a>
</div>
</div>
<div class="postContent">
<div class ="postBody">@html.Raw(post.Body)</div>
<div class="tagList">
@foreach (Tag tag in post.Tags)
{
<span class="tag"><a href="@Href("~/Views/Posts/Tags" + tag.Name)">@tag.Name</a></span>
}
</div>
<div class="linkList">
@{ string url = "http://www.mattblagden.com/posts/details/" + post.Id;}
</div>
</div>
</div>
if (showComments)
{
<div id="commentsContainer">
<a id ="comments"></a>
@foreach (Comment comment in post.Comments.OrderBy(x => x.DateTime))
{
<div class="comment">
<div class="commentName">
@if (!string.IsNullOrWhiteSpace(comment.Email))
{
<a href="mailto:@comment.Email">@comment.Name</a>
}
else
{
@comment.Name;
}
</div>
said:
<div class="commentBody">@html.Raw(html.Encode(comment.Body).Replace("\n", "<br/>"))</div>
<div class="commentTime">at @comment.DateTime.Value.ToString("HH:mm") on @comment.DateTime.Value.ToString("yyyy/MM/dd")</div>
</div>
}
<div id="commentEditor">
<div id="commentPromt">Leave a comment!</div>
<form action="@Href("~/Views/Posts/Comment/" + post.Id)" method="post">
<input type="text" id="commentNamePromt" name="name"/>Name (required)<br/>
<input type="text" id="commentEmailPromt" name="email" />Email (optional)<br/>
<textarea id="commentBodyInput" name="body" rows="10" cols="60"></textarea><br/>
<input type="submit" id="commentSubmitInput" name="submit" value="Submit!"/>
</form>
</div>
</div>
}
}
但我得到了以下错误:
错误CS0103当前上下文中不存在名称“PostHelper”
我如何解决这个问题,为什么它不可见 改变这个
@foreach (Post post in Model)
{
@PostHelper.Render(post,Html,isAdmin, false)
}
到
如果在同一页面上调用帮助程序,请尝试以下操作:
@foreach (Post post in Model)
{
@Render(post, Html, isAdmin, false)
}
在应用程序代码中重命名文件夹 “我们可以在视图模板之外定义@helper方法,并使它能够在项目中的所有视图模板中重复使用
我们可以通过将@helper方法保存在.cshtml/.vbhtml文件中来实现这一点,这些文件位于您在项目根目录下创建的\App\u代码目录中。“您的意思是在视图中粘贴helper的代码@MJwills可能重复省略
@PostHelper
。我在这个答案中尝试解决方案,但它对我没有帮助@MJwills为什么不使用局部视图?无法解析渲染。看。我的助手位于项目的App_代码文件夹中。我试图重建一个项目,但这并没有帮助。似乎我看不到。
@foreach (Post post in Model)
{
@Render(post,Html,isAdmin, false)
}
@foreach (Post post in Model)
{
@Render(post, Html, isAdmin, false)
}