跟踪网址的路由/ {item-name} / {desc}

时间:2014-12-24 05:47:23

标签: c# asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing

我想关注以下网址:

www.example.com/item/edit/1/price
www.example.com/item/edit/1/description

其中1是商品ID,价格和描述是单独的cshtml文件

这可以在控制器文件和路由中的asp.net mvc中完成吗?怎么可能呢?

2 个答案:

答案 0 :(得分:0)

您可以使用查询字符串执行以下操作

首先,您的路由将类似

{action}/{Id}

然后将cshtml名称作为查询字符串参数传递

示例调用应为

www.abc.com/item/edit/1?page=description

答案 1 :(得分:0)

您可以使用归属路由来执行此操作,请参阅此处:

http://blogs.msdn.com/b/webdev/archive/2013/10/17/attribute-routing-in-asp-net-mvc-5.aspx

因此,您要求的两条路径是:

[RoutePrefix("item")]
public class ItemController : Controller
{
    // /item/edit/1/price
    // would result in invocation of
    // this method with itemid = 1 , desc = "price"
    [Route("edit/{itemid}/{desc}")]
    public ActionResult(int itemid, string desc) 
    {
        //code here
    }

}

假设你的意思是基于所提供的网址,不确定这是什么,但基本上使用属性路由你可以操纵一个网址来解决几乎任何MVC中任何控制器方法的调用