0

ASP.NET MVCで、JQueryからボタンクリック時のコントローラーのアクションを呼び出したい。

コントローラ:

public class HomeController : Controller
    {
        //
        // GET: /Home/

        public ActionResult Index()
        {

            return View();
        }
        public ActionResult PersonInfo(string name, string city)
        {
            // other code for assign ViewData
            return View();
        } 
    } 

Index.chtml ページに 2 つの textBox と 1 つの Button があります。「 http://localhost:2526/PersonName 」のようにURLを表示したい。都市の場合、オプションのパラメーターが必要で、Url には必要ありません。そのため、次のようにルートをマッピングしました。

routes.MapRoute(
                "Default", // Route name
                "",
                 new { controller = "Home", action = "Index" } // Parameter defaults
            );

routes.MapRoute(
          "PersonInfo", // Route name
          "{name}", // URL with parameters
          new { controller = "Home", action = "PersonInfo", name= ""  , city = ""} // Parameter defaults

ブラウザから「 http://localhot:2526/John 」のような URL を入力すると、PersonInfo ビューが正常に表示されました。

質問に関連するリンクにアクセスしました。しかし、パラメータも渡したいです。

誰でも私を助けてください。JQueryからボタンクリックでアクションを呼び出すにはどうすればよいですか?

4

2 に答える 2

0

たとえば、パラメーターをクエリ文字列として渡すことができます。

$('#buttonId').click(function(){
     document.location = 
    '@Url.Action("MyAction","MyController")'+'?'+'parameterToSend = @value';
});

あなたのリンクは次のようになります

MyController/MyAction?parameterToSend=value
于 2012-12-23T12:59:35.723 に答える
0

ホストの末尾の / を避けるために、Url.Action メソッド内にパラメーターを追加します。

@Url.Action("PersonInfo","Home" , new {name=Model.Name, city=Model.City }) //これでルートが調べられ、localhost:2526/John/JohnsCity が生成されると思います

パラメータはモデルの一部ですか? その場合、上記は機能します。そうでない場合は、1AmirJalali の回答を使用できますが、パラメーターを追加する前に / を置き換えてください。パラメーターがモデルの一部ではない場合、おそらく JavaScript 変数を介して来ているからです。

于 2012-12-23T16:10:23.310 に答える