在点击包含帖子的主页时,最好的方法或可能的java脚本可以加载视图(文章)。
我发现大多数文档都在同一视图中的div上加载视图。
帖子查看:
<div class="row small-up-2 medium-up-3">
@foreach (var post in Model.Posts)
{
<div class="column column-block">
<div class="blog-post">
<img src="https://placeimg.com/400/400/cba" alt="">
<h3>@post.Title</h3>
<img src=@post.Image alt="">
<button data-url='@Url.Action("SearchPartial","Blog", @post.Title )'
class="button js-reload-details">
Reload
</button>
</div>
</div>
}
加载文章视图的控制器:
public ActionResult SearchPartial(String title)
{
var model = db.Posts.Where(x => x.Title == title).FirstOrDefault();
return View("SearchPartial", model);
}
答案 0 :(得分:1)
不使用按钮,而是使用HTML元素的本机行为,并使用锚标记。它们旨在将您发送到新位置,并且可以轻松点击您的Controller并将浏览器移动到其他位置。
使用CSS,您可以轻松地使它们看起来像其他按钮。我将添加属于Bootstrap的类。
此外,您应该发送帖子的ID而不是标题。这是一个唯一值,很可能,您对Title属性没有相同的约束。标题可以搜索,但是你不应指望那些指向一个且只有一个帖子。
<div class="row small-up-2 medium-up-3">
@foreach (var post in Model.Posts)
{
<div class="column column-block">
<div class="blog-post">
<img src="https://placeimg.com/400/400/cba" alt="">
<h3>@post.Title</h3>
<img src=@post.Image alt="">
// Send the post.Id instead of post.Title
<a href='@Url.Action("SearchPartial","Blog", new { id = @post.Id } )' class="btn btn-primary">
Reload
</a>
</div>
</div>
}
通过更改链接的参数,您还需要更改操作方法。
public ActionResult SearchPartial(int postId)
{
var model = db.Posts.Find(postId);
return View("SearchPartial", model);
}