Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.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布局中的Url_Asp.net_Asp.net Mvc_Asp.net Mvc 4_Url Action - Fatal编程技术网

ASP.NET MVC布局中的Url

ASP.NET MVC布局中的Url,asp.net,asp.net-mvc,asp.net-mvc-4,url-action,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Url Action,我有以下问题。我创建了一个布局和两个使用它的视图。每个视图使用不同的控制器。布局的一部分是带有站点名称的导航。我想做的是使站点名链接始终指向主/索引操作。当我在主控制器视图上单击站点名称时,它会工作,但当我使用不同的控制器转到其他站点时,它会抛出一个错误 描述:HTTP404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下URL并确保其拼写正确 我使用默认路线设置 请求的URL:/index.html 下面是模板代码的一部分 @使用System.Web.Scr

我有以下问题。我创建了一个布局和两个使用它的视图。每个视图使用不同的控制器。布局的一部分是带有站点名称的导航。我想做的是使站点名链接始终指向主/索引操作。当我在主控制器视图上单击站点名称时,它会工作,但当我使用不同的控制器转到其他站点时,它会抛出一个错误

描述:HTTP404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下URL并确保其拼写正确

我使用默认路线设置

请求的URL:/index.html

下面是模板代码的一部分

@使用System.Web.Script.Services

<title>Galeria zdjęć</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Art Mission</title>
<!-- Bootstrap -->
<link href="~/Css/bootstrap.min.css" rel="stylesheet" />
<link href="~/Css/style.css" rel="stylesheet" />
@RenderSection("Style", false)

Galeria zdjęć
艺术使命
@渲染部分(“样式”,false)


切换导航
@RenderBody() @渲染部分(“脚本”,false)

提前感谢您的帮助

编辑:我包括了完整的布局

@Url.Action("Index", "Home")
无论您在站点的何处,都将始终指向Home Controller中的索引操作

您的问题可能是您在布局中的某个位置包含了
@Url(“index”)
,因此将其替换为
@Url(“index”,“Home”)


@Url(“索引”)
在您从
主控制器中的任何操作检索视图之前都可以正常工作,但当您转到其他控制器时,这将中断,并且不会指向
/Home/Index
,顺便说一句,如果您使用默认路由,则只能使用
/Home

/Index.html
查找物理文件调用
index.html
。对于具有文件扩展名的URL,绕过路由框架。要获得
HomeController.Index
操作,您必须使用URL
/Home/Index
/Index
,或者只使用
/
(基于默认路由)。我刚刚注意到,当我将鼠标悬停在链接上时,它会显示:localhost:port/Gallery/Index.html。我不明白为什么它显示的控制器与我在@Url.Action(“Index”,“Home”)中设置的控制器不同,也不明白为什么要添加.html。您可能在某个地方缺少或不完整的标记,这会导致在浏览器试图“修复”标记时Url被顶起。或者,可能页面上的某些JavaScript行为不正常。一种简单的检查方法是在浏览器中禁用JavaScript,然后查看URL是否相同。另外,检查实际渲染的源(右键单击->查看源)。看看URL是否在那里。我更新了有问题的代码并包含了完整的布局代码。我不使用@Url(“索引”)。它现在的工作方式是:我运行home/index,页面加载正常,我将鼠标悬停在link上,它显示localhost:port。我点击链接到画廊,这是一个从不同的控制器返回的视图。页面加载正常,但当我将鼠标悬停在与上一个站点相同的链接上时,它会显示:localhost:port/Gallery/index.html。有什么想法吗?
@Url.Action("Index", "Home")