gpt4 book ai didi

asp.net-mvc - 如何将字符串消息从 Controller 传递到 MVC 中的 View

转载 作者:行者123 更新时间:2023-12-02 05:53:04 24 4
gpt4 key购买 nike

我想通过从 Controller 传递到 View 的字符串变量来显示字符串消息。

这是我的 Controller 代码:

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 Message 显示到 View 。

请指导我。我是 MVC 新手

最佳答案

将 Controller 更改为:

    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>
}

或者不执行任何操作,只需根据列表中包含项目的产品列表的存在情况将消息放入 View 中。

// 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; }
}

并通过您的 View 方法返回此值:

//if
return View(new SearchModel { Products = products });
//else
return View(new SearchModel { EmptyMessage = "Search result Not Found" });

关于asp.net-mvc - 如何将字符串消息从 Controller 传递到 MVC 中的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23477560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com