我正在使用 .net mvc 和 jquery 创建一个用于事件管理的 Web 应用程序。我创建了一个 mvc web app.contollerSeatPlansController并命名为模型SeatPlanes,并且我能够将数据插入数据库。但我无法使用 mvc 控制器将数据从 jquery 传递到数据库。
我的控制器操作代码如下所示
// GET:座位计划/创建
公共 ActionResult 创建()
{
返回视图();
}
// POST:座位计划/创建
// 为了防止过度发布攻击,请启用您想要绑定的特定属性,例如
// 更多详细信息请参阅 http://go.microsoft.com/fwlink/?LinkId=317598。
[http邮报]
[验证防伪令牌]
公共 ActionResult 创建(字符串 Seat_id,字符串 Seat_no)
{
整数 ID = 10;
SeatPlans S = new SeatPlans();
S.seat_id = 座位_id;
S.seat_no = 座位号;
if (ModelState.IsValid)
{
db.SEATPLAN.Add(S);
db.SaveChanges();
// 返回 RedirectToAction("Index");
}
返回视图(S);
}
在创建后控制器 Id 是主键,所以我想传递seat_id,seat_no作为参数,它应该更新数据库。
我使用了以下 JavaScript
function getPerson(id) {
$.ajax({
type: "GET",
url: '@Url.Action("create", "SeatPlanesController")',
contentType: "application/json; charset=utf-8",
data: {eat_id :6, seat_no:8},
dataType: "json",
success: function (result) {
alert(result);
//window.locationre = result.url;
}
});
}
Run Code Online (Sandbox Code Playgroud)
我可以使用以下命令运行 create get 方法
http://localhost:52348/SeatPlans/Create
Run Code Online (Sandbox Code Playgroud)
但是我怎样才能直接从浏览器运行 post 方法并带有类似的参数
http://localhost:52348/SeatPlans/Create/2/3t/e
Run Code Online (Sandbox Code Playgroud)
我已经更改了脚本,如下所示,它适用于 GET 方法,但如果我输入 TYPE:"post",它会弹出一个警报框,其中包含警报“localhost:52348 说:内部服务器错误”
$(文档).ready(函数() {
$("按钮").click(函数() {
$.ajax({
类型:“帖子”,
contentType: "application/json; charset=utf-8",
url: '@Url.Action("创建", "SeatPlans", new { Area = "" })',
数据:{ 座位号:“34”,座位号:“98” },
数据类型:“json”,
异步:假,
成功:函数(结果){
$("#div1").html(结果);
},
错误:函数(abc){
警报(abc.statusText);
},
});
});
});
小智 1
最后我得到了解决方案,我改变了脚本如下
//jQuery.noConflict();
// var $j = jQuery.noConflict();
函数点击事件()
{
var 形式 = $("#frm");
var token = $('input[name="__RequestVerificationToken"]', form).val();
$.ajax({
类型:“帖子”,
// headers: { "__RequestVerificationToken": token },
url: '@Url.Action("创建", "座位计划")',
数据: {
座位号:“34”,座位号:“98”
},
成功:函数(结果){
$("#div1").html(结果);
}
});
}
并更改创建帖子方法如下
<pre>
public ActionResult Create(String seat_id, String seat_no)
{
int id = 10;
SeatPlans S = new SeatPlans();
S.seat_id = seat_id;
S.seat_no = seat_no;
if (ModelState.IsValid)
{
db.SEATPLAN.Add(S);
db.SaveChanges();
// return RedirectToAction("Index");
}
return View(S);
}
Run Code Online (Sandbox Code Playgroud)