Asp.net mvc 3 mvc 3使用jquery调用服务器端函数
我使用这段代码从服务器获取部分视图,并将其放入div中Asp.net mvc 3 mvc 3使用jquery调用服务器端函数,asp.net-mvc-3,jquery,razor,Asp.net Mvc 3,Jquery,Razor,我使用这段代码从服务器获取部分视图,并将其放入div中 $.ajax( { type: "POST", url: "MyControler/MyAction", success: function (result) { $('#partialView').html(result); }, error: function (req, status, error) {
$.ajax(
{
type: "POST",
url: "MyControler/MyAction",
success: function (result) {
$('#partialView').html(result);
},
error: function (req, status, error) {
alert("Coudn't load partial view");
}
});
现在我想做同样的事情,但我会调用一个简单的方法返回一个字符串,并将结果放入文本框中
$.ajax(
{
type: "POST",
url: "MyControler/MyMethod",
success: function (result) {
$('#myTextBox').html(result);
},
error: function (req, status, error) {
alert("Coudn't load partial view");
}
});
方法是这样的
public string MyMethod()
{
returning "hello";
}
显然它不起作用,但有没有办法让它起作用??有一个属性我应该用于methode吗
提前谢谢
附言:
根据我在第一个答案中的回答,我尝试了这个方法,但不起作用
public ActionResult Hello()
{
return Content("Hi there!");
}
ajax调用有什么问题吗
$.ajax(
{
type: "POST",
url: "MyControler/Hello",
success: function (result) {
$('#myTextBox').html(result);
},
error: function (req, status, error) {
alert("Coudn't load partial view");
}
});
ps
我想尝试一个干净的项目,它使用一个返回字符串的简单方法工作得很好
因为它起作用了,我试着在我的项目中实现它,但它似乎只在global.asax文件中设置的起始页面起作用。你知道我应该做什么才能使它在每个页面上都起作用吗 您希望从该方法返回字符串,是的,但您需要的是返回字符串的ActionResult 检查以下有关StackOverflow的问答
在虚拟目录或子域下运行时,最好使用
Url.Action
方法。操作方法将创建正确的Url
除此之外,您似乎正在向站点发布,因此您是否已将
HttpPost
属性添加到您的操作中?您正在进行HttpPost呼叫。因此,请确保您的操作方法使用HttpPost
属性修饰。另外,请始终尝试使用Url.Action
HTML助手方法作为操作方法的路径
假设mmycontrollercontroller
中存在Hello
操作方法,下面的代码应该可以工作
$.ajax(
{
type: "POST",
url: "@Url.Action("Hello","MyControler")",
success: function (result) {
alert("result from server "+result);
$('#myTextBox').html(result);
},
error: function (req, status, error) {
alert("Coudn't load partial view");
}
});
你的行动方法
[HttpPost]
public ActionResult Hello()
{
return Content("This is String Content");
}
我想你应该用下面的方法
$('#myTextBox').attr('value',result);
而不是
$('#myTextBox').html(result);
据我所知,我尝试了这个方法,但它不起作用public ActionResult Hello(){return Content(“Hi there!”);}请将您的问题编辑到您需要粘贴代码或进行重大更改的时候。这对我没有帮助,因为我做了与他们说的相同的事情,我认为ajax调用存在问题。请检查一下好吗?请解释一下我不确定您的意思
url:“MyController/MyAction”
行,可以使用Url.Action方法,如soUrl:@Url.Action(“MyAction”、“MyController”)”
。如果您使用的是扩展Javascript文件,那么简单地在主页上嵌入/生成Url作为变量,并通过外部文件引用它。