2017-09-08 10 views
-2

"パスワードを忘れた"リンクのログインフォームがあります。ログインオン は、リンク「パスワードを忘れてしまった」に私はいくつかの異なるアクションを呼び出すいながら、私はいくつかの他のアクションを呼び出す午前提出:私は必要なものasp.netの同じコントローラでhttpPostを使ったActionLink MVC 5

@Html.ActionLink("Forgot Password", "ForgotPassword", "Login", Model , new { @onclick = "return ValidateUsername();" }) 

をPOSTとして代わりのGET、それを送信することです。

私が持っているものは、ASP.NET WebFormソリューションで、ほとんど完全にASP.NET MVCに変換されました。私はLinkBut​​tonを使用していた1つの場所。それは唯一のボトルネックです。


編集:私は常にコントローラにNULLとしてデータを取得していますなぜ

今、私は次のJavaScript

$("a.anchor").click(function (e) { 
    e.preventDefault(); // This will stop default behavior 
    var validate = ValidateUsername(); 
    if (validate) { 
     //alert(document.getElementById('usernameTextBox').value); 

     var str = document.getElementById('usernameTextBox').value; 
     $.ajax({ 
      type: "POST", 
      url: "http://localhost/SSOMVC/Generic/ForgotPassword", 
      data: "data", 
      dataType: "text", 
      success: function (resultData) { 
       document.getElementById("usererror").textContent = resultData; 
      }, 
      failure: function (error) { 
      } 
     }); 
    } 
}); 

@Html.ActionLink("Forgot Password", null, null, Model, new { @class = "anchor" }) 


    public class GenericController : Controller 
    { 


     [HttpPost] 
     public ActionResult ForgotPassword(string data) 
     { 
      .... 
      return Content(callResponse); 
     } 
    } 

を使用していますが知ってはいけません。

+0

私はあなたもactionlinkでそれを行うことはできないと思います。あなたが過負荷のいずれかになる可能性がある場合 –

+0

このトピックを読むことができます:https://stackoverflow.com/questions/2048778/asp-net-mvc-actionlink-and-post-method – arslanaybars

+0

質問は明確ではありませんモデルをActionLinkで直接Modelに渡すことができます – umasankar

答えて

2

ActionLinkはMVCのアンカータグに変換されます。アンカータグは、デフォルトでGET要求を送信します。

投稿リクエストを作成するには、jqueryでAjaxポストコールを使用できます。

@Html.ActionLink("Forgot Password", "ForgotPassword", "Login", Model , new { @onclick = "return ValidateUsername();" }, new { @class="anchor"}) 

    <script type="text/javascript"> 

    $("a.anchor").click(function(e){ 
     e.preventDefault(); // This will stop default behavior 
    $.ajax({ 
     type: "POST", 
     url: "<your classname/methodname>", 
     data: <your data>, 
     dataType: "text", 
     success: function(resultData){ 
      alert("Call Complete"); 
     }, 
     failure: funciton(error){ 
} 
}); 
    });  

</script> 
+0

ajax/jquery codeを避けたいと思った –

+1

これは唯一の兄弟です。 MVCは、基盤技術に従わなければなりません。アンカーリンクがデフォルトで投稿を送信することを許可すると、ルールが破られます。 –

+0

ありがとうDheeraj。 –

関連する問題