【发布时间】:2020-09-21 05:56:44
【问题描述】:
我正在尝试通过 AJAX 向 MVC 控制器方法发送数据。我正在尝试制作预订系统应用程序。我想检查实体模型中是否存在用户输入。 Ajax 正在将参数推送到方法控制器,但我没有得到响应。
这是我在 View 中的 AJAX 调用:
var check = document.getElementById('check');
//starttime.onchange = checkvalidate(startdate, starttime);
$(check).click(function (datevalue, timevalue) {
var startdate = document.getElementById('startdate');
var starttime = document.getElementById('starttime');
var log = document.getElementById('log');
var datevalue = startdate.value;
var timevalue = starttime.value;
$.ajax({
type: "POST",
url: "/Home/CheckValidate",
data: { 'start': datevalue, 'time': timevalue },
dataType: "Boolean",
success: function (response) {
console.log = response;
if (response == true) {
log.value = "YES";
} else
{
log.value = "NO";
}
}
})
})
控制器中的方法:
public bool CheckValidate(string start, string time)
{
string datastart = start + " " + time;
DateTime startDate = Convert.ToDateTime(datastart);
EventsEntities dc = new EventsEntities();
var MatchedElements = dc.Events.Where(x => x.start <= startDate && startDate < x.end).FirstOrDefault();
if (MatchedElements == null)
{
return true;
} else
{
return false;
}
}
我想发送字符串输入并取回数据以显示可以预订该房间的消息。 我哪里搞错了?
【问题讨论】:
-
似乎是什么错误?即:什么不起作用?它的表现如何,您希望它表现如何?
-
这里是a shot in the dark:您可能忘记添加
HttpPost属性,这意味着您的C# 端点不接受Post请求 -
@Stefan 我在 AJAX 调用处做了断点,似乎“onchange”不起作用,我试图在按钮上调用 AJAX 方法,效果相同。它应该检查可能性。当用户更改输入“开始时间”时,该函数被调用并且控制器检查该日期是否可以预订并返回真/假。取决于可能与否,我想显示用户消息。我通过 HTML Post 做了同样的方法,它可以工作,但我不想重新加载视图。
-
那么,控制器的命名是否正确? ASP.NET 的默认路由会让我相信您的
CheckValidate方法在HomeController内,并且您没有 API 路由的/API前缀,对吗? -
@Stefan 我发现了这个错误。
"Uncaught TypeError: startdate.val is not a function"
标签: javascript c# ajax model-view-controller