【问题标题】:ViewBag dynamic Url.ContentViewBag 动态 Url.Content
【发布时间】:2023-03-17 16:25:01
【问题描述】:

我只想替换代码方便Url.Content 而不是使用ViewBag。我怎么能这样做?

<a href="@Url.Content("~/Bike/")">Home</a>
   <ul>
       <li>
           <a href="@Url.Content("~/Bike/Categories/1?name=Mountain Bikes&class=image")">Mountain Bikes</a>
       </li>
       <li>
           <a href="@Url.Content("~/Bike/Categories/2?name=Road Bikes&class=image")">Road Bikes</a>
       </li>
       <li>
           <a href="@Url.Content("~/Bike/Categories/3?name=Touring Bikes&class=image")">Touring Bikes</a>
       </li>

   </ul>

ViewBag:

 ViewBag.Menu = BikesDB.ProductSubcategories
                .Where(m => m.isSelected == true).AsEnumerable()
                .Select(p => new Bike { 
                                        Id = p.ProductSubcategoryID,
                                        Name = p.NameofBike 
                         });

【问题讨论】:

  • 你能提供更多关于你想要什么的信息吗?
  • ... 例如,一个例子。不清楚你在问什么。你想使用ViewBag 还是Url.Content 助手?
  • &lt;img src="@Url.Content("~/Content/themes/"+ViewBag.ThemeName+"/images/logo.png")" alt="logo"/&gt; 类似这样的东西。我想在Url.Content 中使用ViewBag 替换name

标签: asp.net-mvc viewbag dynamic-html


【解决方案1】:

您需要为此使用以下内容::

<a href="@Url.Content("~/Bike/")">Home</a>
<ul>


    @foreach (var item in @ViewBag.Menu)
    {
       <li>
          <a href="@Url.Content("~/Bike/Categories/"+item.ID+"?name="+item.Name+"&class=image")">@item.Name</a>
       </li>   
    }

</ul>

因为您制作的 ViewBag 包含多个 Entries(即 Enumerable)

ViewBag.Menu = BikesDB.ProductSubcategories
                .Where(m => m.isSelected == true).AsEnumerable()
                .Select(p => new Bike { 
                                        Id = p.ProductSubcategoryID,
                                        Name = p.NameofBike 
                         });

【讨论】:

  • 为什么 SO 还不支持 RAZOR 语法...?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多