1

我有一个 DashBoardController.cs 这里我有这个代码

public class DashBoardController : Controller
    {
        //
        // GET: /DashBoard/

        [Authorize]
        public ActionResult Index()
        {
            return View();
        }

        //
        // GET: /New Project/

        [Authorize]
        public ActionResult NewProject()
        {
            return View();
        }

        //
        // GET: /File Upload/

        public ActionResult UploadFile()
        {
            return View();
        }

        [HttpPost]
        public ActionResult UploadFile(HttpPostedFileBase file)
        {
            // Verify that the user selected a file
            if (file != null && file.ContentLength > 0)
            {
                // extract only the fielname
                var fileName = Path.GetFileName(file.FileName);
                // store the file inside ~/App_Data/uploads folder
                var path = Path.Combine(Server.MapPath("~/Uploads"), fileName);
                file.SaveAs(path);
            }
            // redirect back to the index action to show the form once again
            return RedirectToAction("Index", "Home");
        }

    }

我这里有另一个 masterlayout 文件我有这个代码

<div id="LeftColumn" class="ui_style_floatLeft">
            <div id="menuWrapper">
                <ul class="menu">
                    <li class="menuDashBoard">@Html.ActionLink("Dashboard","Index")</li>
                    <li class="menuProject"><a href="#">Project</a>
                        <ul>
                            <li>@Html.ActionLink("New Project","NewProject")</li>
                            <li><a href="#">Projects</a></li>
                        </ul>
                    </li>                   
                    <li class="menuAccount"><a href="#">Account</a>
                        <ul>
                            <li>@Html.ActionLink("Change Password", "ChangePassword", "Account")</li>
                        </ul>
                    </li>                  
                </ul>               
             </div>
        </div>

但是,如果我转到Change Password操作链接,则其他链接 ( New Project, Dashboard) 不起作用。我尝试@Url.Action使用 herf attr 但不工作:(

我现在该怎么办 ?

4

4 回答 4

1

您需要在操作链接中包含控制器名称:

@Html.ActionLink("Dashboard","Index","DashBoard")

如果省略controllerName,则将使用当前控制器构造链接。由于您导航到AccountController,应该指向损坏的链接DashboardController

在共享区域(如导航)中,您通常需要包含控制器引用。

于 2012-07-10T20:19:40.087 回答
1
  • 链接文本:“仪表板”
  • 动作名称:“索引”
  • 控制器名称:“仪表板”

    @Html.ActionLink("仪表板"、"索引"、"仪表板")

如果您使用区域将控制器分组到您需要的不同区域。

@Html.ActionLink("Dashboard", "index", "dashboard", new { area = "YourAreaName"})
于 2012-07-10T20:59:38.597 回答
0

使用这个重载

@Html.ActionLink("New Project","NewProject","DashBoard")

这是格式

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    string controllerName
)
于 2012-07-10T20:20:28.310 回答
0

仔细看,我想你没有把控制器放在"NewProject"and"Index"方法上

尝试更换

@Html.ActionLink("New Project","NewProject")

为了

@Html.ActionLink("New Project","NewProject", "DashBoard")

@Html.ActionLink("Dashboard","Index")

为了

@Html.ActionLink("Dashboard","Index", "DashBoard")
于 2012-07-10T20:21:21.927 回答