从Form To Url.Action发送参数

时间:2014-08-06 08:33:02

标签: jquery asp.net-mvc razor

我想将数据从text field传递到URL.action

我的ajax使用这个DIV,只要按下DIV内的按钮就刷新它。一切都很好。事情是我需要传递一些URL.action to controller的参数。同一视图中textfields or dropboxes中的参数。我怎么能这样做?

我的div:

 <div id="mylist" data-source-url="@Url.Action("lentele", new { status = "good"})">

Dropbox我想从以下选项中获取所选值:

@Html.DropDownList("status", new SelectList(ViewBag.Status, "name", "name"), "Status", new { @class = "btn btn-default dropdown-toggle", style = "width:120px;" })

在示例中,如果我在参数中写status="good"一切正常,我得到了我想要的东西。但是如何设置从DropDownList获取状态?

data-source-url用作获取网址的属性:

<script>
    function ajaxifyGridMvc(gridContainerSelector, successCallback) {
        $(gridContainerSelector).on("click", ".grid-header a, .grid-pager li a",
            function (event) {
                var $grid_container = $(event.delegateTarget);

                var baseUrl = $grid_container.attr("data-source-url");
                var link = $(this).attr("href");
                $.get(baseUrl + link, function (data) {
                    if (data.Status <= 0) {
                        alert(data.Message);
                        return;
                    }
                    $grid_container.html(data);
                    if ($.isFunction(successCallback))
                        successCallback();
                });

                return false;
            });
    }
</script>

答案:

将动态值传递给url.action是不可能的。 所以不得不管理其他方式,我发现我可以更改baseUrl并在那里设置参数。

看起来像:

$.get(baseUrl + link + "&slicplate="+ $("#slicplate").val()....

1 个答案:

答案 0 :(得分:0)

您可以使用data方法的$.get()参数将参数传递给操作方法。例如,如果您需要将2个值传递给此方法

public ActionResult DoSomething(string Name, int Category) {...

你有以下html

<input type="text" id="Name" ... />
<select id="Category" ...>
  <option value="1">Category 1</option>
  <option value="2">Category 2</option>
  ...
</select>

并且您希望传递文本框和下拉列表的值,您可以使用

var url = '@UrlAction("DoSomething", "YourControllerName")';
var name = $('#Name').val();
var category = $('#Category').val();
$.get(url, { Name: name, Category: category }, function (data) {
  // do something with the data returned by the action method