Asp.net mvc 如何在MVC中将字符串消息从控制器传递到视图
我想通过从控制器传递到视图的字符串变量来显示字符串消息 这是我的控制器代码:Asp.net mvc 如何在MVC中将字符串消息从控制器传递到视图,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我想通过从控制器传递到视图的字符串变量来显示字符串消息 这是我的控制器代码: public ActionResult SearchProduct(string SearchString) { FlipcartDBContextEntities db = new FlipcartDBContextEntities(); string noResult="Search Result Not Found"; va
public ActionResult SearchProduct(string SearchString)
{
FlipcartDBContextEntities db = new FlipcartDBContextEntities();
string noResult="Search Result Not Found";
var products = from p in db.Products select p;
if (!String.IsNullOrEmpty(SearchString))
{
products = products.Where(s => s.ProductName.StartsWith(SearchString));
return View(products);
}
else
{
return View(noResult);
}
//
这里我想向视图显示字符串值ei消息
请引导我。
我是MVC新手将控制器更改为:
public ActionResult SearchProduct(string SearchString)
{
FlipcartDBContextEntities db = new FlipcartDBContextEntities();
string noResult="Search Result Not Found";
var products = from p in db.Products select p;
if (!String.IsNullOrEmpty(SearchString))
{
products = products.Where(s => s.ProductName.StartsWith(SearchString));
return View(products.ToList());
}
else
{
ViewBag.Message = noResult;
return View(new List,Product>());
}
您可以通过ViewBag将消息从服务器传递到客户端。请注意,您必须从if/else的两侧返回相同的API,因此不能一次传递产品列表,另一次传递字符串。在你看来:
if (ViewBag.Message != null)
{
<span>@ViewBag.Message</span>
}
视图模型(最后一个示例)IMHO是最好的方法。视图需要的所有内容都在一个对象中传递,当您阅读代码时,意图非常清楚。
// Model = Products returned; must make sure list returned is not null
if (Model.Count > 0)
{
<span>Search Result not found</span>
}
public class SearchModel
{
public List<Product> Products { get; set; }
public string EmptyMessage { get; set; }
}
//if
return View(new SearchModel { Products = products });
//else
return View(new SearchModel { EmptyMessage = "Search result Not Found" });