我正在重构一个使用 MVC 的 asp.net 报告。我删除了报告的一些标准(不再需要)并添加了一些新标准,但现在根本没有生成报告。我单击提交按钮,它只是返回。
因此,我在代码中添加了一些 console.log 语句作为我至少到达那里的健全性检查:
$("#submit_button").click(function () {
console.log("submit btn clicked");
$("#NumberOfResults").css("visibility", "visible");
$("#NumberOfResults").html("Please wait...");
EnableButton("submit_button", false);
var deptsList = $('#depts').checkedBoxes();
$('#deptHeader span').html(deptsList.join(", "));
var sitesList = $('#sites').checkedBoxes();
$('#sitesHeader span').html(sitesList.join(", "));
$('#hiddenDepts').val(deptsList); //do I need to make this: $('#hiddenDepts').val(deptsList).join(","); ?
$('#hiddenSites').val(sitesList); // ""
var UPCs = $('UPC').val();
if (UPCs == "All") {
$('UPC').val("1"); // take everything (1 and greater)
}
console.log("about to submit the form");
$("form").submit();
});
我认为它可能失败了,因为并非所有要传递的值都是有效的(modelState 包含错误),但是在调用 $("form").submit();之后不会反对进一步处理。?
IOW,我希望在混合提交按钮然后 F12 之后在控制台中看到“提交 btn 单击”和“即将提交表单”,但我不......
确实,五个模型成员中有三个是空字符串,所以我有更多问题要追查,但为什么我什至看不到这些控制台日志消息?
更新
我在控制器的最后一行有一个断点:
[HttpPost]
public ActionResult ReceiptCriteria(TLDSalesReceiptCriteriaModel model)
{
ViewBag.DebugMessage = "No error";
if (ModelState.IsValid) // inspect locals.modelstate [breakpoint set here]
......但我什至没有达到它......?!?!?
更新 2
作为对 Karl Anderson 的回答,以下是相关的 HTML:
<button type="submit" id="submit_button" class="bottomButtonEnabled">View Report</button>
更新 3
如果有办法将控制台消息作为文本获取,我看不出如何,所以我捕捉到了一个尖叫声:
如果您的眼睛太小而无法阅读,可以这么说(我的眼睛是),这里有一些措辞:
shouldShowTB 文件不存在 - 默认操作 show Toolbar > DOMException chrom.tabs 不可用:您无权访问此 API。确保.... 加载资源失败:服务器响应状态为 404 (Not Found) ...sprite.png 加载资源失败:服务器响应状态为 400 (Bad Request) 加载资源失败chrome-extension://klibjjljfadl;fjkdlfjkdl;;fjdlfjadl/tb/al/state.html MessagingReadyWrapper 没有准备好。名称:abstractionLayerBack.js ,位置 .... 等待插件超时,在没有插件的情况下调用 ready ...
更新 4
我按照 Aegis 所说的做了,使用提交按钮本身或使用:
form action="/mypath/mycshtml" method="post"
...右键单击并选择“检查元素”后在 CDT 中突出显示,我在右窗格的底部看到:
提交表格......然后是一堆“gobbledygook”(这对我来说是 g[r]eek;也许 Aegis 理解它)
引用的文件是 jquery.js:6497;下面它显示了 jquery 的一堆东西(sourcename 的值是 google 的 CDN jQuery 文件的路径)。它应该指向我的 submit_button 点击处理程序吗?
更新 5
也许我的问题的至少一部分是我明确地调用了“form”.submit,提交按钮不应该是必需的 - 捣碎它应该自动提交表单,对吧?在注释掉之后(在尝试了 document.form.submit() 的原始 javascript 之后),我至少现在看到了我在控制台中添加的第一个 console.log msg(“submit btn clicked”)。所以那里和第二个console.log msg(没有被写入控制台)之间的某个地方失败了。