2016-07-04 4 views
0

私はUmbraco 7アプリケーションを開発中です。 そこに1つのコントローラがあり、私のビューからそのメソッドを呼び出そうとしています。 しかし、私がActionLinkからメソッドを呼び出すと、メソッドが見つかりません。 URLからこれを確認したときに間違っています。 MVCラインさFollingUmbraco 7でMVCのActionLinkからコントローラメソッドを呼び出す方法は?

:後 は、コードスニペットある私は、画面上の次のエラーを取得しています

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

MVCコントローラ方法を以下に示し

@Html.ActionLink("Send OTP", "Index", "RegisterSurface", new { id = "lnkSendOTP" }) 

を、私は理解できませんでしたURLの形成も同様に

enter image description here

答えて

0

あなたがActionLink方法の間違ったオーバーロードを使用しているように見えます:

public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, object routeValues, object htmlAttributes) {...} 

をあなたの代わりにこれを使用する:

public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes) {...} 

は正しいオーバーロードを使用するために追加のnull引数を渡す試してみてください:

@Html.ActionLink("Send OTP", "Index", "RegisterSurface", null, new { id = "lnkSendOTP" }) 
+0

添付の画像を見ましたか? URLの形成は間違っているように見え、コントローラメソッドが見つからなかったのです。 – user2746466

+0

はいイメージを見ました。 'ActionLink'メソッドがあなたのコントローラ名の引数を' string'ではなく 'object'として扱っているので(" RegisterSurface "は15文字です)、"?Length = 15 "がURLに追加されています。 [この質問](http://stackoverflow.com/questions/824279/why-does-html-actionlink-render-length-4)は、この問題に関するさらに詳しい情報を提供します。 –

+0

あなたの解決策を試してみましたが、まだ運がない........私はURLが「Umraco/Surface/RegisterSurface」である方法を理解していません。 「Umbraco/RegisterSurface/Index」でなければなりません。そうでなければ、コントローラメソッドをどのように見つけるか。 – user2746466

関連する問題