我有(2)MVC视图除了页面上的一些文本描述之外将是99%相同。来自查询字符串的bool
调用中提供的View
值会切换Where
上IList<TModel>
子句,该Index
子句最终从View
加载到页面上控制器上的方法。
我知道从TModel
读取查询字符串是不好的做法,并且任意选择单个bool
实例来读取<h5>Please update the Positive values</h5>
值似乎也不正确,所以我想知道怎么做。
说我有以下文字:
视图1:
<h5>Please update the Negative values</h5>
视图2:
Positive
我真正想要的是1个视图,Negative
或?IsPositive=true
文本值只根据查询字符串中的以下内容进行切换:
Index
一旦调用IList
方法,该值也可用于模型,但由于模型是View
,我必须查看单个实例。
顺便说一下,描述符需要在IList<TModel>
中的大约3-4个位置进行更改,所以如果集中化而不是内嵌更好,那我就很好。
根据查询字符串值切换此文本的正确方法是什么,这最终会导致{{1}}中的每个实例?
答案 0 :(得分:1)
最好的方法是使用包含IList<TModel>
和IsPositive
标记的视图模型,如下所示:
public class MyViewModel
{
public IList<TModel> MyList { get; set; }
public bool IsPositive { get; set; }
}
您的操作方法构建模型并将其传递给视图:
public ActionResult Index(bool IsPositive)
{
IList<TModel> myList = BuildYourList();
MyViewModel model = new MyViewModel()
{
MyList = myList,
IsPositive = IsPositive
};
return View(model);
}
然后在您的视图中,您只需检查IsPositive
属性并显示相应的HTML:
@model Your.ViewModel.Namespace.MyViewModel
@if (Model.IsPositive)
{
<h5>Please update the Positive values</h5>
}
else
{
<h5>Please update the Negative values</h5>
}