如何解决mvc 3 razor使用jquery调用服务器端函数
| 我正在使用此代码从服务器获取部分视图,或者将其放在div中 $.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) {
alert(\"Coudn\'t load partial view\");
}
});
方法就是这样
public string MyMethod()
{
returning \"hello\";
}
显然,它不起作用,但是有办法使它起作用吗?是否有我应该用于方法的属性
提前致谢
ps:
从我在第一个答案中得到的红色中我尝试了此方法,但它不起作用
public ActionResult Hello()
{
return Content(\"Hi there!\");
}
Ajax调用有问题吗?
$.ajax(
{
type: \"POST\",url: \"MyControler/Hello\",success: function (result) {
$(\'#myTextBox\').html(result);
},error) {
alert(\"Coudn\'t load partial view\");
}
});
ps
我想尝试一个干净的项目,使用返回字符串的简单方法可以正常工作
由于它起作用了,所以我尝试将其实现到我的项目中,但是似乎它只能从global.asax文件中设置的起始页面起作用,任何想法我应该做些什么才能使其在每个页面中起作用?
解决方法
您正在拨打HttpPost。因此,请确保您的Action方法使用
HttpPost
属性修饰。也总是尝试使用to6ѭHTML Helper方法作为action方法的路径。
假设您在MMyControlerController
中使用了Hello
Action方法,那么下面的代码应该可以工作。
$.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);
, 您想从该方法返回一个字符串,是的,但是您想要的是一个返回字符串的ActionResult。
检查以下关于StackOverflow的问题和答案。
在MVC中,如何返回字符串结果?
, 对于在虚拟目录或子域下运行的情况,最好使用“ 6”方法。 Action方法将创建正确的Url。
除此之外,您似乎正在发布到网站,那么您是否将action5属性添加到了操作中?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。