1

这似乎很容易,但不仅对我有用。我有以下代码可以HomeController从我的 JavaScript 文件中运行我的方法:

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/MethodName'我放url: '/Home/MethodName', 虽然我的控制器名称是 HomeController

于 2013-01-18T13:35:50.403 回答
1

您应该让 MVC 框架的强大功能来处理 URL 的呈现。如果您更改路由,则可能意味着您必须遍历所有 html 页面并更新类似的引用。通过这种方式,您可以避免上述问题。

利用

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

ETC

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

Your made a formatting mistake. This url string property is not correclty closed. You are also missing a comma at the end of the data property.

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 回答