【发布时间】:2017-06-19 13:45:17
【问题描述】:
我在这里阅读了很多关于 stacoverflow 的问题,但我仍然不清楚我应该如何在主视图中使用带有操作方法的局部视图。总的来说,我的方法可能有问题。到目前为止,我不确定如何继续我的代码。
我将从主视图开始:
@{
ViewBag.Title = "getRolesByYear";
}
</script>
<script type="text/javascript">
getRolesForYear(parseInt(@DateTime.Now.Year));
$(function () {
$('#years a').click(function () {
var year = $(this).text();
console.log(year);
getRolesForYear(parseInt(year));
});
})
//console.log(year);
function getRolesForYear(year) {
console.log(year);
$.ajax({
type: "POST",
url: '@Url.Action("getRolesByYear", "WorkRoles")',
dataType: "json",
data: {
year: year
},
success: successFunc,
error: errorFunc
});
function successFunc(data, status) {
console.log('x');
}
}
function errorFunc() {
alert('error');
}
}
</script>
<div id = "years" class="btn-group btn-group-justified timeline">
<a href="#@DateTime.Now.Year" class="btn btn-primary">@DateTime.Now.Year</a>
<a href="#@DateTime.Now.AddYears(-1).Year" class="btn btn-primary">@DateTime.Now.AddYears(-1).Year</a>
<a href="#@DateTime.Now.AddYears(-2).Year" class="btn btn-primary">@DateTime.Now.AddYears(-2).Year</a>
</div>
<div id"partial"></div>
在这个视图中,我有三个按钮,每个按钮都有不同的年份。在页面加载或按钮单击时,我使用 int 年份作为参数对 action method 进行 ajax 调用。
这是我的操作方法的简化版:
public ActionResult getRolesByYear(int year)
{
// a couple of queries here
var list = list of RoleViewModel objects;
return PartialView(list);
这里是部分视图:
@model IEnumerable<eksp.Models.RoleViewModel>
@foreach (var item in Model)
{
<div class="jumbotron">
<h2>item.Role.RoleName</h2>
<h1> item.Role.RoleDescription</h1>
<p class="lead">Focus start : item.Role.FocusStart</p>
<p>Focus end : item.Role.FocusStart </p>
</div>
}
显然,很多事情我都不清楚。如何将此部分视图与我拥有的操作方法和主视图一起使用?局部视图是否需要单独的方法?有什么建议吗?
【问题讨论】:
-
您的要求是什么(用户用例)。根据您的用例,根据需要使用技术。从用户的角度来看,您的预期行为是什么。
-
我只需要通过部分视图显示对象列表,我在主视图的操作方法中拥有这些对象列表。 P.S 我添加了部分视图。
标签: c# asp.net-mvc razor partial-views