我有一个需要通过Ajax回发的应用程序。调用ActionMethod
时遇到问题。下面是代码。
控制器:
[HttpGet]
public ActionResult Index()
{
return View();
}
public JsonResult AjaxTest(object name)
{
return Json("Welcome" + name, JsonRequestBehavior.AllowGet);
}
Cstml:
<form name="frmTest" method="POST">
@Html.Label("Your name Please")
@Html.TextBox("username")
<input class="btn btn-success btn-lg btn-block" type="submit" value="Login">
JQuery:
$(function () {
$("form[name='frmTest']").submit(function (e) {
var name = $('#username').val();
$.ajax(
{
type: "POST",
//contentType: "application/json; charset=utf-8",
url: "MyTest/AjaxTest",
dataType: "json",
data: { name:name },
success: function (data, status) {
alert("Pass"+data);
},
error: function () {
alert("Fail");
}
});
});
});
使用上面的代码断点使用参数命中AjaxTest
。当我使用contentType: "application/json; charset=utf-8",
然后页面回弹而没有达到断点。
但是这两种情况我都失败了。无法找到问题,
答案 0 :(得分:1)
我不确定你要做什么,但是因为在你发表的其中一条评论中你会将内容保存到数据库中,通常,在ASP MVC中它会像这样完成。
使用AJAX为您发布的任何内容创建一个类。例如,在此示例中,我创建了一个名为Person
的类public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
然后在你的表格中你可以有这样的东西:
@{
ViewBag.Title = "Test";
}
<form name="frmTest" method="POST">
@Html.Label("Your name Please")
@Html.TextBox("username")
<input class="btn btn-success btn-lg btn-block" type="submit" value="Login">
</form>
<script>
$(function () {
$("form[name='frmTest']").submit(function (e) {
var name = $('#username').val();
$.ajax(
{
type: "POST",
//contentType: "application/json; charset=utf-8",
url: "AjaxTest",
dataType: "json",
data: { "Age": 55, "Name": name },
success: function (data, status) {
alert("Pass" + data);
},
error: function (ex) {
alert("Fail" + ex);
}
});
});
});
</script>
然后有一个JSON将被提交的动作。对于上述情况,行动将是这样的:
public JsonResult AjaxTest(Person person)
{
return Json("Welcome" + person.Name, JsonRequestBehavior.AllowGet);
}
ASP MVC将为您处理绑定。还请注意我发布的网址是&#34; AjaxTest&#34;它将发布到服务表单的控制器的AjaxTest动作方法。
如果您有如下控制器,则以上所有操作都可以。
public class AccountController : Controller
{
// This returns the view with the form
public ActionResult Test()
{
return View();
}
public JsonResult AjaxTest(Person person)
{
return Json("Welcome" + person.Name, JsonRequestBehavior.AllowGet);
}
}