将参数从View传递给控制器​​MVC 4

时间:2016-04-01 09:10:08

标签: c# asp.net-mvc asp.net-mvc-4


我想将选定的dropdownlist值从视图传递到MVC 4中的html.BeginForm中的控制器。
我可以传递查询字符串的值,但我不知道如何传递下拉列表的选定值 欢迎提出所有建议 这是我的代码附件

<form>
    <fieldset class="form-group" id="ddl2">
        <label for="exampleSelect1">Section Type:</label>
            @(Html.Kendo().DropDownList()
                .Name("ddlsection")
                .DataTextField("Name")
                .DataValueField("Id")
                .OptionLabel("--Select--")
                .DataSource(source =>
                 {
                    source.Read(read =>
                    {
                        read.Action("GetSectionType", "LookUp");
                    });
                })
                .Events(e => e.Change("onChange_ddlsection"))
                .HtmlAttributes(new { @class = "form-control" })
            )
    </fieldset>
</form>
    <div class="WordClass">
        @using (Html.BeginForm("GetConditionListingInWord", "Inspection", new { sectionId = 'What should be here?' }, FormMethod.Post, new { enctype = "multipart/form-data" }))
        {
            <input id="Submit1" type="submit" value=""  class="WordClassA tooltipSource" title='Print List in MS-Word format'  data-placement='bottom' data-toggle='tooltip' />
        }
    </div>

我希望'ddlsection'下拉列表的选择值在'这里应该是什么?'部分。

2 个答案:

答案 0 :(得分:0)

您可以使用Ajax调用将Kendo Dropdownlist的选定值传递给Controller,然后根据需要重定向到另一个Action:

<script type="text/javascript">

    $(function () {

        //Returns Dropdownlist's selected values to the Controller
        $("#btnSubmit").click(function (e) {
            e.preventDefault();

            var data = {
                ProjectID: $('#ProjectID').val(), //parameter I
                IssueID: $('#IssueID').val()      //parameter II
            }
            $.ajax({
                type: "POST",
                url: "/Controller/Action",
                cache: false,
                data: JSON.stringify(data),
                dataType: this.dataType,
                contentType: "application/json; charset=utf-8",                 
                success: function (data) {
                    // Variable data contains the data you get from the action method
                    window.location = "/Controller/OtherAction/" + data
                },
                error: function (data) {
                    $("#error_message").html(data);
                }
            }); 
        });

    });

</script>

希望这会有所帮助......

答案 1 :(得分:-2)

For that you have to make AJAX call to your controler method

var userModel = {
             RoleId: $("#drpRoleId").data("kendoDropDownList").value(),
        }

$.ajax({
            url: '@Url.Action("AddEditUser","User")',
            type: 'POST',
            data: JSON.stringify(userModel),
            async: true,
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            success: function (data) {
           }
});