1

これは簡単に思えますが、私にとってはうまくいきません。HomeControllerJavaScriptファイルからメソッドを実行するための次のコードがあります。

function(id) {
    alert("here");
    $.ajax({
        url: '/HomeController/MethodName',
        data: { id: id },
        success: function(data){
             alert('Sucess ' + data);      
        }
    });
}

私の方法は

public string MethodName(int id)
{
    return id.ToString() + "test ";
}

javascriptを呼び出すビューには、次のスクリプトが定義されています:jquery.unobtrusive-ajax.min.js、MicrosoftMvcAjax.js、MicrosoftAjax.js、validate.unobtrusive.min.js、jquery.validate.min.js

しかし、それは単に機能しているだけではありません。何も起こりません。関数の最初のアラートが表示されます。しかし、その後は何もありません。

4

3 に答える 3

1

指定されたURLが間違っていました。 私のコントローラー名はHomeControllerですが、url: '/HomeController/MethodName'置く代わりにurl: '/Home/MethodName',

于 2013-01-18T13:35:50.403 に答える
1

むしろ、MVCフレームワークの力でURLのレンダリングを処理する必要があります。ルーティングを変更すると、すべてのhtmlページを調べて、同様の参照を更新する必要がある可能性があります。このようにして、上記の問題を回避します。

使用する

<%= Html.RenderAction("MethodName", "Home") %>

function(id) {
    alert("here");
    $.ajax({
        url: <%= Html.RenderAction("MethodName", "Home") %>,
        data: { id: id },
        success: function(data){
             alert('Sucess ' + data);      
        }
    });
}
于 2013-01-18T15:50:47.763 に答える
0

フォーマットを間違えました。このurl文字列プロパティは正しく閉じられていません。dataまた、プロパティの最後にコンマがありません。

function(id)
 alert("here");
 $.ajax({
   url: '/HomeController/MethodName', // last single quote was missing 
   data: { id: id }, // comma was missing
   success: function(data){
    alert('Sucess ' + data);      
  }
 });
于 2013-01-17T21:15:30.043 に答える