MVC3.0 不同view层,调用相同Controller方法,但参数不同
在view 层中 跳转详细页面我们浏览数 加1。,但修改页面不需要加1,两者都是调用controller 中从DB中检索一条数据!
在详细页面 :
"InfoContent", "Activity", new { id = x.NOTICE_ID,browseNum="add" }
在修改页面:
// 修改
function Modify(value)
{
location.href = '/Activity/InfoEdit?p_strNoticeID=' + value + '&browseNum=' +unadd;
}
最终在Repository 中
2 {
3
4
5 ACT_NOTICE notice = Single(x => x.NOTICE_ID == p_Notice_ID);
6 if (browseNum == "add")
7 {
8 notice.BROWSE_NUM = notice.BROWSE_NUM + 1;
9 }
10
11 SubmitChanges();
12
13 return notice;
14 }
个人总结:传参的思想,引申到通过传递不同参数控制显示内容的不同,例如之前做的同一个view层,在一个也没显示图片,另一个也没没有图片,我们可以在viewmodel中定义一个字段做标志
/// <summary>
/// 控制页面显示图片的参数
/// </summary>
public string showDiv { get; set; }
在controller中
2 /// Index页面加载 公告信息list
3 /// </summary>
4 /// <returns></returns>
5 public ActionResult List(int flag)
6 {
7 NoticeViewModel viewModel=new NoticeViewModel();
8 viewModel=_noticeLogic.GetNotctForList();
9
10 //flag==1在index页面公告信息显示图片
11 if (flag == 1)
12 {
13 viewModel.showDiv = "show";
14 }
15
16 return PartialView("List", viewModel);
17
18 }
这样就可以在 Index页面 传递参数
<div class="news">
@Html.Action("List", "Notice", new { flag = "1" })
</div>
而在另一页面所传递的参数不同。
最终在View层,在加载页面时作出判断,是否加载带有图片的div的显示。
@if (Model.showDiv == "show")
{
在index页面显示图片(参数1)
}
else
{
在其他页面不显示图片
}
还可以引申到viewBag 在controller 定义一个参数 传递在view层!