0

これは私の行動です:

[HttpPost]
    public ActionResult AddDispo(string idv, string dd, string df)
    {
        try
        {
            Models.indisponible model = new Models.indisponible();
            model.Dd = Convert.ToDateTime(dd);
            model.Df = Convert.ToDateTime(df);
            model.idv = idv;
            entity.indisponible.AddObject(model);
            entity.SaveChanges();
            TempData["Resultat"] = "La nouvelle date a été ajouté courrectement";
            return RedirectToAction("Dispo", "Agence", new { idv = idv});
        }
        catch (Exception)
        {
            TempData["Resultat"] = "Une erreur se produiset Vielliez ressaiyer";
            return RedirectToAction("Dispo", "Agence", new { idv = idv});
        }

    }

私の見解では、使用せずにこのアクションを呼び出したいのですがHtml.beginForm、この試行を行いましたが、うまくいきませんでした:

<%: Html.Action("Accepter", "Adddispo", new { id = Model.idv, dd = Model.Dd, df = Model.Df  })%>
4

2 に答える 2

0

アクション リンクは常に「GET」リクエストを送信します。その [HttpPost] 属性をコントローラー アクションから削除するか、shyju によって提案された同様の手法を使用します。アクション リンクには Windows イベントに関するいくつかの問題があるため、アンカーが特に必要でない限り、様式化されたボタンを使用する必要があります。スタイリングの例は次のとおりです。

#mybutton input[type=submit] {
    background: none;
    padding: 0px;
    font-family: arial;
    font-size: 1em;
    cursor: pointer;        // to make it look like link
    border: none;           //     --- " -----
}
于 2012-05-29T10:09:10.277 に答える
0

Action メソッドのタイプはHTTPOSTです。したがって、そのアクションを呼び出すにはフォーム投稿が必要です。ビューで form タグを使用したくない場合は、jQuery を使用して POST を実行できます。

以下の例では、ユーザーが ID を持つボタンをクリックしたときに投稿を行いますbtnPost

HTML (ビューのコンテンツ)

<html>
 <head>
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
 </head>
 <body>
     Name : <input type="text" id="txtName" />  <br/>
     Age: <input type="text" id="txtAge" />  <br/>
     Place : <input type="text" id="txtPlace" />  <br/>
     <input type="button" value="Save" id="btnPost" /> 

     <script type="text/javascript">
      $(function(){

         $("#btnPost").click(function(e){
            e.preventDefault(); // preventing the default button submit behaviour

            var name=$("#txtName").val();  //reading the text box values
            var age=$("#txtAge").val(); 
            var place=$("#txtPlace").val(); 

            $.post("YourController/AddDispo", { idv :name, dd : age, df=place} ,function(data) { 
              //Do whatever with the the response. may be an alert
              alert(data);
            });    
         });

     });
    </script>

機能

1)ドキュメントの head セクションに、jQuery ライブラリへの参照を含めました。Google CDN からの参照を含めています。これを変更して、ローカル コピーを含めることができます。ASP.NET MVC を使用している場合、既定のプロジェクト テンプレートでは、Scriptsフォルダーの下にこれがあります (バージョン番号は異なる場合があります)。

2)ドキュメント準備完了イベント ( $(function(){..) では、ID を持つボタンにいくつかの機能をバインドしていますbtnPostclickイベントに機能をバインドしています。したがって、ユーザーがそのボタンをクリックするたびに、そのコードが実行されます。

3)テキスト ボックスの値を読み取り、jQueryのpostメソッドを使用しています。渡したデータ (ここではテキスト ボックスの値を渡しています) をアクション メソッドにポストします。アクション メソッドがコールに何かを返すと、データ変数に格納されます。その値を確認した後、さらに何かを行うことができます(ユーザーにメッセージを表示する/コンテンツをリロードする)。

于 2012-05-28T22:36:07.193 に答える