我是mvc的新手,我尝试对我的控制器进行简单的Ajax调用,因此我可以在创建视图中使用日期和时间选择器.
当我在IE中使用调试时,我收到此错误消息,但如果我执行断点,看起来我得到了正确的数据.
The parameters dictionary contains a null entry for parameter ‘Lokal’ of non-nullable type ‘system.int32’ for method
‘System.Web.Mvc.ActionResult CreateEvent(System.String, System.String,
System.String, Int32)’ in
‘VLVision.Controllers.SammanTradesAdminController’. An optional
parameter must be a reference type, a nullable type, or be declared as
an optional parameter.
Parameternamn: parameters
script type="text/javascript">
function createSammanTrade() {
var sammanTrade = document.getElementById('sammanTrade').value;
var date = document.getElementById('datepicker').value;
var startTime = date + ' ' + document.getElementById('StartTimepicker').value;
var endTime = date + ' ' + document.getElementById('EndTimepicker').value;
var lokal = document.getElementById('lokal').value;
$.ajax({
url: "@Url.Action("CreateEvent", "SammanTradesAdmin")",
data: { createSammanTrade: sammanTrade, createStartTime: startTime, createEndTime: endTime, createLokal: lokal },
type: "POST",
error: function () {
alert("An error occurred.");
},
success: function (data) {
$("#clanderDiv").html(data);
$("#setEventResponse").html("Händelse sparad");
// $(".blank").tooltip();
}
});
}
调节器
public ActionResult Create()
{
ViewBag.lID = new SelectList(db.Lokal, "lID", "lLokal");
return View();
}
[HttpPost]
public ActionResult CreateEvent(string createSammanTrade, string createStartTime, string createEndTime, int Lokal)
{
SammanTrade sammanTrade = new SammanTrade();
sammanTrade.sSammanTrade = createSammanTrade;
sammanTrade.sstartTid = Convert.ToDateTime(createStartTime);
sammanTrade.sSlutTid = Convert.ToDateTime(createEndTime);
sammanTrade.lID = Lokal;
if (ModelState.IsValid)
{
db.SammanTrade.Add(sammanTrade);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.lID = new SelectList(db.Lokal, "lID", "lLokal", sammanTrade.lID);
return View(sammanTrade);
}
解决方法:
由于JS和C#中的参数名称不同,因此无法绑定:
data: { createSammanTrade: sammanTrade, createStartTime: startTime, createEndTime: endTime, createLokal: lokal }
public ActionResult CreateEvent(string createSammanTrade, string createStartTime, string createEndTime, int Lokal)
在JS中将createLokal更改为lokal,或者在C#中将其更改为(或将一个名称绑定到另一个名称).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。