如何从视图中获取控制器的值

时间:2014-06-26 22:22:08

标签: javascript jquery asp.net asp.net-mvc

我正努力为我的控制器赢得价值。请有人建议从视图中获取控制器价值的方法。应用程序在.Net3.5和MVC 2中用于.Net3.5

jquery和controller的视图是:

jquery和html是:

<tr>
  <td style ="width: 313px">
    <label for="Product Code"> Product 
Code&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    </label>&nbsp;&nbsp;
    <select id ="prodList" style = "width:150px">
      <option value ="GL ">GL </option>
      <option value ="Property" selected="selected">Property </option>
      <option value ="Package" >Package </option>
      <option value ="Island" >Island </option>
    </select>
  </td>
  <td style="width: 313px"><input type ="button" id="addProd" value ="Add Product" /></td>
</tr>

<script src="/Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script src="/Scripts/jquery-1.4.1.min-vsdoc.js" type="text/javascript"></script>
<script src="/Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script>

<script type="text/javascript">
  $(function() {
    $("#addProd").click(function() {
      //alert("here");
      var selectedID = $("#prodList").val();
      alert("me 1" + selectedID);
      $.ajax({
        url: "/WorkFlowTest/ProductSubmission/",
        type: 'POST',
        data: { productID: $("#prodList").val() },
        contentType: 'application/json; charset=utf-8',
        success: function(data) {
          //alert(data.success);
          alert("success");
        },
        error: function() {
          alert("error");
        }
      });
    });
  });
</script>

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult ProductSubmission(string productID, ViewModels.WorkFlowTestViewModel SubmissionModelView)
{
     SubmissionModelView.selectedProd = prodSelected   ;
     return View("Submission", SubmissionModelView);
}

在jquery函数中,警报具有所选值,但是 对于SubmissionModelView,所有属性都为null,而productId也是null

虽然在浏览器控制台中我获得了来源{"productId":"Property"},但我无法理解为什么我的帖子在操作ProductSubmission中没有任何价值。

任何人都可以提供帮助,我只需要控制器在Post上获取所选的选项值,甚至是Post上的文本值。我无法从视图获取任何值到控制器,我的模型在POST中也有所有属性null。请帮忙

1 个答案:

答案 0 :(得分:0)

您应该使用JSON.stringify函数将对象转换为JSON字符串。

 $.ajax({
    url: "/WorkFlowTest/ProductSubmission/",
    type: 'POST',
    data: JSON.stringify({ productID: $("#prodList").val() }),
    contentType: 'application/json; charset=utf-8',
    success: function(data) {
      //alert(data.success);
      alert("success");
    },
    error: function() {
      alert("error");
    }
  });