在asp.net mvc中對控制器進行簡單的Ajax調用我正在嘗試開始使用ASP.NET MVC Ajax調用??刂破鳎簆ublic class AjaxTestController : Controller{
//
// GET: /AjaxTest/
public ActionResult Index()
{
return View();
}
public ActionResult FirstAjax()
{
return Json("chamara", JsonRequestBehavior.AllowGet);
} }視圖:<head runat="server">
<title>FirstAjax</title>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var serviceURL = '/AjaxTest/FirstAjax';
$.ajax({
type: "POST",
url: serviceURL,
data: param = "",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: successFunc,
error: errorFunc });
function successFunc(data, status) {
alert(data);
}
function errorFunc() {
alert('error');
}
});
</script></head>我只需要使用控制器方法返回數據來打印警報。上面的代碼只是在我的視圖上打印“chamara”。警報未觸發。UPDATE我修改了我的控制器如下,它開始工作。我不清楚它為什么現在正在工作。有人請解釋一下。參數“a”沒有關聯我添加它因為我不能添加兩個方法具有相同的方法名稱和參數。我認為這可能不是解決方案,但它的工作public class AjaxTestController : Controller
{
//
// GET: /AjaxTest/
[HttpGet]
public ActionResult FirstAjax()
{
return View();
}
[HttpPost]
public ActionResult FirstAjax(string a)
{
return Json("chamara", JsonRequestBehavior.AllowGet);
}
}
3 回答

飲歌長嘯
TA貢獻1951條經驗 獲得超3個贊
完成更新后,
它首先使用默認的HttpGet請求調用FirstAjax操作并呈現空白的Html視圖。(早先你沒有)
稍后加載該視圖的DOM元素時,您的Ajax調用將被觸發并顯示警報。
之前您只是將JSON返回給瀏覽器而不呈現任何HTML?,F在它呈現了一個HTML視圖,它可以獲取您的JSON數據。
您不能直接呈現JSON的普通數據而不是HTML。

qq_遁去的一_1
TA貢獻1725條經驗 獲得超8個贊
刪除數據屬性,因為您不是POSTING
服務器的任何內容(您的控制器不期望任何參數)。
在您的AJAX方法中,您可以使用Razor
和使用@Url.Action
而不是靜態字符串:
$.ajax({ url: '@Url.Action("FirstAjax", "AjaxTest")', contentType: "application/json; charset=utf-8", dataType: "json", success: successFunc, error: errorFunc});
從您的更新:
$.ajax({ type: "POST", url: '@Url.Action("FirstAjax", "AjaxTest")', contentType: "application/json; charset=utf-8", data: { a: "testing" }, dataType: "json", success: function() { alert('Success'); }, error: errorFunc});

白板的微信
TA貢獻1883條經驗 獲得超3個贊
使用Razor通過調用您的操作動態更改您的URL:
$.ajax({ type: "POST", url: '@Url.Action("ActionName", "ControllerName")', contentType: "application/json; charset=utf-8", data: { data: "yourdata" }, dataType: "json", success: function(recData) { alert('Success'); }, error: function() { alert('A error'); }});
- 3 回答
- 0 關注
- 1440 瀏覽
添加回答
舉報
0/150
提交
取消