我认为这会比以前简单得多。我需要从数据表中的单元格中提取数据(我可以这样做),然后通过带有隐藏字段的表单提交数据,以便将变量传递给 Controller 中的操作。
除了生成表单之外,我正在代码中执行与之前类似的操作。
我尝试了不同的方法,无论什么时候我在操作中访问集合时,值都是 null。
我的查看功能:
$('#myTable').on('click', 'td', function () {
var serial = table.cell(this).data();
var form = $('<form action="@Url.Action("status")" id="hiddenform"><input type="hidden" id="serial" name="serial" value=""></form>').appendTo('body');
$('.serial').val(serial);
form.submit();
});
以及我正在解析的 Controller :
//Accept GET and POST
[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
public ActionResult Status(System.Web.Mvc.FormCollection collection)
{
string serial = collection["serial"];
if (serial == null || serial == "")
System.Windows.Forms.MessageBox.Show("Error: Serial is NULL");
return View(serial);
}
说实话,为了解决这个问题,我对代码进行了很多修改,所以它看起来非常糟糕。
如有任何帮助,我们将不胜感激。
我每次在 Controller 中都会收到错误:串行为空弹出窗口。但是,如果我测试 JQuery,该值不为 null,它将返回正确的值。
最佳答案
您是否尝试过将方法签名更改为以下内容?
public ActionResult Status(string serial)
其中,serial 是您将从 HTML 表单传递的参数名称。
如果 HTML 中的参数名称是 blah,您可能需要将方法签名更改为以下内容:
public ActionResult Status(string blah)
关于javascript - 生成带有隐藏输入的表单并提交到操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40987658/