27

このhtmlに何か問題がありますか?マスターページに「CreateParts」ビューに移動するためのリンクが必要です。コントローラ「PartList」にパラメータparentPartIdを持つアクション「CreateParts」があります。

<li id="taskAdminPartCreate" runat="server">
                                    <%= Html.ActionLink("Create New Part", "CreateParts", "PartList", new { parentPartId = 0 })%></li>

私のコントローラーのアクションは次のようなものです

public ActionResult CreateParts(int parentPartId)
    {
        HSPartList objHSPart = new HSPartList();
        objHSPart.Id = parentPartId;
        return View(objHSPart);
    }

SiteMasterのメニューで[CreateNewPart]をクリックすると、例外が発生します。これから私を助けてください。

4

3 に答える 3

65

誤った過負荷を使用しています。このオーバーロードを使用する必要があります

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    string controllerName,
    Object routeValues,
    Object htmlAttributes
) 

そして正しいコードは

<%= Html.ActionLink("Create New Part", "CreateParts", "PartList", new { parentPartId = 0 }, null)%>

最後に追加のパラメータがあることに注意してください。その他のオーバーロードについては、 LinkExtensions.ActionLinkメソッドにアクセスしてください。ご覧のとおりstring, string, string, object、使用しようとしている過負荷はありません。

于 2011-11-28T11:04:58.123 に答える
10

ActionLinkの誤ったオーバーロードを使用しています。これを試して

<%= Html.ActionLink("Create New Part", "CreateParts", "PartList", new { parentPartId = 0 }, null)%>
于 2011-11-28T11:04:39.277 に答える
9

受け入れられた答えへの追加:

使用する場合

 @Html.ActionLink("LinkName", "ActionName", "ControllerName", new { @id = idValue, @secondParam= = 2 },null)

これにより、リンクの新しいカスタム属性またはスタイルを作成できないアクションリンクが作成されます。

ただし、ActionLink拡張機能の4番目のパラメーターは、その問題を解決します。カスタマイズには4番目のパラメーターを使用します。

 @Html.ActionLink("LinkName", "ActionName", "ControllerName", new { @id = idValue, @secondParam= = 2 }, new { @class = "btn btn-info", @target = "_blank" })
于 2014-07-08T03:51:12.550 に答える