我有两条返回同一页面的路线。两者都有效。两个页面都有正确的数据 - 除了我的_layout页面上的轮播不显示图像。
http://localhost:4556/Controller/Function/41
- 无效。
http://localhost:4556/Controller/Function?id=41
- 确实有用。
route.config文件......
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
有谁知道这是为什么?
_layout
The carousel I am using is such:
<div id="myCarousel" class="container carousel slide" data-ride="carousel">
<ol class="carousel-indicators"></ol>
<div class="carousel-inner" role="listbox"></div>
<a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
脚本中使用的图像路径是:ImagePath:“../ Images / Carousel / default-image.png”
未正确显示广告的网页引用了布局页面,如:
Layout = "~/Views/Shared/_Layout.cshtml";
答案 0 :(得分:0)
我配置了以下路线:
routes.MapRoute(
"GetGift",
"{controller}/{action}/{priceId}",
new { controller = "Home", action = "GetGift" });
<强>控制器强>
public class HomeController : Controller
{
public ActionResult GetGift(int priceId)
{
return View();
}
}
当我导航到此网址时:http://localhost:20441/Home/GetGift/1
我最终采用上述操作方法。当我尝试http://localhost:20441/Home/GetGift?priceId=1
时会发生同样的事情。所以我可以选择使用哪种格式。
配置路由可能是一种黑暗的艺术,但我倾向于尽可能地将它们声明为(在我的示例中,我在路由中特别提到{priceId}
以避免使用模糊的{ id }
),以帮助缩小路由引擎必须迭代的选择范围,并避免混淆,即路由引擎选择与我预期不同的路线。
答案 1 :(得分:0)
您好我问过一个非常聪明的人。
我的图片需要使用@ Url.Content(etc ..)
引用感谢所有回答我的人! :)