【问题标题】:How to pass data html beginform to controller in MVC 4 in jquery如何在jquery中将数据html beginform传递给MVC 4中的控制器
【发布时间】:2015-11-20 21:50:53
【问题描述】:

我有 html 表单,我需要在其中将数据传递给 MVC 4 中的控制器。我需要在 jquery 中完成。代码是:

            <% using (Html.BeginForm("CopyEvaluationVersion", "Evaluations"))
            <input type="submit" value="Submit"  />

控制器

public ActionResult CopyEvaluationVersion(string copyEvaluationVersionId, string copyToYear)

数据是隐藏字段

   <input type="hidden" id="copyEvaluationVersionId" name="copyEvaluationVersionId" value="<%= ViewData["evaluationVersionId"] %>" />

我需要将隐藏字段“copyEvaluationVersionId”传递给 copyEvaluationVersionId 控制器操作 ActionResult CopyEvaluationVersion(string copyEvaluationVersionId)。我想我需要在 jquery 中做到这一点。但我不知道该怎么做。

【问题讨论】:

  • 不太清楚您的要求。如果要提交表单并保持在同一页面上,则需要使用ajax。
  • 我修改了帖子,又看了一遍。我不想停留在同一页面上。
  • 那你认为你为什么需要jquery?如果您对属性copyEvaluationVersionId 的输入位于表单标签内,则在您提交表单时将回发其值。但是根据你显示的html,它的值是null,那么有什么意义呢?
  • 重点是如何在控制器动作CopyEvaluationVersion中获取copyEvaluationVersionId。我认为它应该在字符串 copyEvaluationVersionId 中,但实际上不是。隐藏字段的值由 ViewData 预设。再次阅读帖子。
  • 什么?阅读最后一条评论 - 如果您发布表单,则方法中参数copyEvaluationVersionId 的值将是隐藏输入的值(因为输入具有name="copyEvaluationVersionId")。由于它在视图中的null(它有value="")在控制器中将是null

标签: jquery asp.net-mvc forms


【解决方案1】:

您可以使用对控制器的 ajax 调用来实现此目的。

    function getDatatotheController() {
    var mode = document.getElementById('copyEvaluationVersionId').value;
    var parameters = { 'data': mode };

    $.ajax({
        type: "GET",
        url: '/YourControllerName/CopyEvaluationVersion',
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        data: parameters,
        success: successFunc,
        error: errorFunc
    });

    function successFunc(data) {
       alert(data);
    }

   function errorFunc() {
     alert(error);
   });
   }

你的控制器方法应该是这样的

public ActionResult CopyEvaluationVersion(string copyEvaluationVersionId)

您不能有两个输入参数,因为您只通过 ajax 调用将一个参数传递给控制器​​。

注意: 如果您没有将任何值从控制器传回视图,则“SuccesFunc”和“ErrorFunc”不是必需的。但如果您需要将任何值传回视图,它将作为“数据”在“成功函数()"

希望这个答案对你有所帮助..!

【讨论】:

    【解决方案2】:

    您可以使用此脚本通过 jquery 提交 HTML 表单

     $("#mybutton").click(function () {
    //use your own selector
          $("form").submit();
    });
    

    【讨论】:

      猜你喜欢
      • 2017-05-28
      • 1970-01-01
      • 2014-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-18
      • 1970-01-01
      • 2016-10-28
      相关资源
      最近更新 更多