Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在VB.NET MVC视图中创建URL时出现问题_Asp.net Mvc_Vb.net_View - Fatal编程技术网

Asp.net mvc 在VB.NET MVC视图中创建URL时出现问题

Asp.net mvc 在VB.NET MVC视图中创建URL时出现问题,asp.net-mvc,vb.net,view,Asp.net Mvc,Vb.net,View,我正试图从数据库中写出动物。我看到的所有创建视图页面的示例在URL中都有硬编码的“节点”。我可以让我的第一个视图工作,但我的第二个视图没有写出正确的URL以转到第三个视图。例如,我希望我的URL是: /animals/ /animals/canines/ /animals/canines/schnauzer 我有默认的路线设置: > routes.MapRoute( _ > "Default", _ > "{control

我正试图从数据库中写出动物。我看到的所有创建视图页面的示例在URL中都有硬编码的“节点”。我可以让我的第一个视图工作,但我的第二个视图没有写出正确的URL以转到第三个视图。例如,我希望我的URL是:

 /animals/
 /animals/canines/
 /animals/canines/schnauzer
我有默认的路线设置:

> routes.MapRoute( _
>             "Default", _
>             "{controller}/{action}/{id}", _
>             New With {.controller = "Home", .action = "Index", .id =
> UrlParameter.Optional} _
>         )
第一个URL非常好用,我可以在第一个URL上列出动物组以及到第二个URL的正确链接。我的做法如下:

for each animal in model
     Html.ActionLink(animal.animal_name,animal.animal_name.Trim) 
next
我还可以在第二个页面上写出犬科动物组(因此我知道我的模型正在工作),但是第二个“犬科动物”页面上的操作会丢失URL中的“犬科动物”,因此呈现为:

我已经尝试了我能想到的所有方法来写出链接,包括:


还有一些不值得展示的-D

。。。我猜我在路线上遗漏了什么,但那是什么?这不可能是因为我必须知道我在每个页面上的路径才能写出URL-可以吗


提前感谢您的帮助

您配置的路由查找三个组件:控制器、操作和id。 在您的例子/animals/schnauzer中,就HTTP路由(和链接生成)而言,您要寻找的不仅仅是一个路由元素。它将/动物/犬科动物视为两个不同的值。 如果希望允许类似的路由,请将其指定为:

routes.mapRoute("familyspecies", "animals/{family}/{species}", new { controller = "Home", action = "Animals", Species = UrlParameter.Optional});
把家族和物种传给你的行动

public ActionResult Animals(string family, string species){...}
或 使用通配符路由将操作后的所有内容定向到id

routes.MapRoute("{controller}/{action}/{*id}"); 
public ActionResult Animals(string family, string species){...}
routes.MapRoute("{controller}/{action}/{*id}");