【问题标题】:ViewModel not populated after the form is submitted using ActionLink使用 ActionLink 提交表单后未填充 ViewModel
【发布时间】:2011-01-19 18:08:58
【问题描述】:

当我使用 ActionLink 提交表单时,我的视图模型没有被填充。这是提交表单的jquery代码:

 $(document).ready(function () {

        // attach the event to submit the form when button is clicked 

        $("#lnkSubmit").click(function () {

            // submit the form 
            $("#CustomerRequestForm").submit(); 

        });

    });

Onsubmit 调用了控制器操作,但视图模型的所有属性均为空。

更新1:

这是表格代码

@using (Html.BeginForm("AddCustomer","Customer",FormMethod.Post,new { id = "CustomerRequestForm" })) 

【问题讨论】:

  • 你有没有在你的视图中使用过Html.BeginForm()
  • 需要更多信息。我在您发布的代码中没有看到问题。
  • 是的,我使用了 html.beginform 来调用正确的操作
  • 我是否必须使用 Ajax.beginform 才能进行绑定!
  • 以前没有人遇到过这个问题!这有点奇怪!

标签: jquery asp.net-mvc


【解决方案1】:

我将通过以下免责声明回答您的问题:

使用提交按钮提交表单,而不是链接

话虽如此,请务必通过返回 false 来取消默认链接操作,否则您将在表单还没来得及提交之前就被重定向:

$("#lnkSubmit").click(function () {
    $("#CustomerRequestForm").trigger('submit'); 
    return false;
});

【讨论】:

  • 为什么使用 .Trigger() 而不是 .Submit()?
  • @Pino,没有特别的原因。只是想改变一些东西:-)
  • 谢谢,只是感兴趣!一如既往的好答案
【解决方案2】:

如果您唯一要做的就是在单击 URL 时提交,为什么不使用按钮?他们为此而生,人们得到他们所做的。

如果您需要重定向到其他页面。在提交表单并且代码运行后执行此操作。 (在你的回报)

【讨论】:

  • 必须使用链接!我能说什么?
  • @johndoe,我想知道什么样的文盲会提出这样的要求。绝对是人们对网络标准一无所知。这些人可能会被 CSS 和图像欺骗。因此,您可以使提交按钮(用于提交 html 表单的唯一语义正确元素)看起来像一个链接。
  • 我同意,伙计!这就是我在过去 2 天里告诉他们的!
  • @Darin IMO 美学和行为真的应该分开。链接和按钮的美感不应与特定行为相关联。为什么图片可以表现得像 href 或触发回发,但链接只能是 href 而按钮只能是回发?
  • @AaronLS,因为这就是 HTML 4.01 规范的编写方式。您应该向 W3C 工作组询问他们的决定。
猜你喜欢
  • 2018-10-08
  • 1970-01-01
  • 2016-04-07
  • 1970-01-01
  • 2018-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-19
相关资源
最近更新 更多