首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >动态创建不同路由值的网页

动态创建不同路由值的网页
EN

Stack Overflow用户
提问于 2015-07-14 18:25:07
回答 1查看 63关注 0票数 1

这是我的控制器:

代码语言:javascript
运行
复制
 public ActionResult ShowMenu(string id)
        {
            ViewBag.Id = id;
            return View(id);

        }

我基本上是根据不同的菜单创建不同的网页。我创建的视图:

代码语言:javascript
运行
复制
<div class="test">
    @foreach (DataRow dr in ds.Tables[0].Rows)
    {
        <ul>
            <li>@Html.ActionLink("Test", "ShowMenu", routeValues: new {id = "test" })</li>
        </ul>
    }
</div>

因此,我还为ShowMenu创建了一个视图。但问题是:如何为ID创建多个网页?域看起来像mydomain.com/ShowMenu/test

随着for循环的不断迭代,test将变为不同的值,我需要为每个id参数创建不同的网页。

我只想使用我的ShowMenu视图,通过它,根据id参数动态地更改网页

EN

回答 1

Stack Overflow用户

发布于 2015-07-14 18:50:21

您需要使用DataRow中的一些属性,比如下面的dr["id"]访问方式。

代码语言:javascript
运行
复制
<div class="test">
    @foreach (DataRow dr in ds.Tables[0].Rows)
    {
        <ul>
            <li>@Html.ActionLink("Test", "ShowMenu", routeValues: new {id = dr["id"] })</li>
        </ul>
    }
</div>

顺便说一句,在我所知道的MVC中,将DataTables传递给您的视图并不常见。相反,您通常描述一个模型并传递它。例如

代码语言:javascript
运行
复制
public class Product
{
    public int Id {get; set;}
    public string Name {get; set;}
}

public ActionResult List()
{
    List<Product> products = Database.GetProducts();
    return View(products);
}

public ActionResult Details(string id)
{
    Product product = Database.GetProducts().Where(p => p.Id == id).Single();
    return View(Product);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31414440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档