如何在 MVC 中将字符串传递给 /Home/Index



MVC 新手问题分为两部分,如果有人能提供帮助,非常感谢:1. 如何将字符串传递给此方法(我想将"?demo"附加到 URL 并在此基础上过滤结果):

public ActionResult Index(string id)
{
    List<NewItem> items = _service.GetItems(id == "demo");
    return View(items);
}

2. id == "demo" 作为参数传入是怎么回事,因为该方法指定了一个布尔值(并且它在此状态下编译并运行正常): 这是 GetItems 方法 public List GetItems(bool showDemo) { ... }最后这是我的注册路线内容:

routes.MapRoute(
       name: "itemtitle",
       url: "{Controller}/{action}/{id}/{itemtitle}",
       defaults: new { controller = "Home", action = "Index", id =     UrlParameter.Optional,itemtitle=UrlParameter.Optional }
   );
routes.MapRoute(
        name: "Default",
        url: "{Controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional}
    );

假设这种情况:

public class TestController : Controller
{
   public ActionResult Index(string id)
   {
       List<NewItem> items = _service.GetItems(id == "demo");
       return View(items);
   }
}

然后3种方式:

  1. <baseurl>/Test/Index/12 -> 使用 id 参数
  2. <baseurl>/Test/Index?id=12 -> 不带 id 参数
  3. <baseurl>/Test?id=12 -> 使用默认操作,不带参数。

关于id == "demo"的事情,这是一个简单的布尔条件:

"12" == "demo" -> false
"demo" == "demo" -> true

最新更新