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");
        }

    }

ここに別のマスターレイアウトファイルがあり、このコードがあります

<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 ProjectDashboard) が機能しません。私@Url.Actionはherf属性を試してみましたが、うまくいきません:(

私は今どうすればいい ?

4

4 に答える 4

1

アクション リンクにコントローラー名を含める必要があります。

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

を省略すると、リンクは現在のコントローラcontrollerNameで構築されます。に移動したため、 を指すはずのリンクが壊れました。AccountControllerDashboardController

共有エリア (ナビゲーションなど) では、通常、コントローラー参照を含めたいと思うでしょう。

于 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"よく見てください。および"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 に答える