2 zwb4050 zwb4050 于 2015.07.02 15:42 提问

关于Html.BeginForm提交表单

我现在页面上有三个select表单,这三个select表单是用$.getJSON这个方式赋值的,现在在用Html.BeginForm提交的时候后台获取不到值? 这是其中一个select 表单的赋值代码,其他的都一样,大家帮忙看看!谢谢了!
$(document).ready(function () {
GetByJquery();
GetUser();
$("#selOnemenu").change(function () { GetCity() });
});

    function GetByJquery() {
        //$("#selOnemenu").empty(); //清空省份SELECT控件
        $.getJSON("/RoleMenus/GetmenuOneList", function (data) {
            $.each(data, function (i, item) {
                $("<option></option>")
                    .val(item["MENU_GUID"])
                    .text(item["MENU_NAME"])
                    .appendTo($("#selOnemenu"));
            });
            //GetCity();
        });
    }

就是Controller获取不到值!
Controller中是这样获取的 string num=Request.Form["selOnemenu"];

9个回答

u013749192
u013749192   2015.07.02 15:48

我怎么看不到你传参数给后台呢?
$.getJSON(url,data.success(){});

zwb4050
zwb4050   2015.07.02 16:00

我的页面上是用Html.BeginForm()这个提交的!

zwb4050
zwb4050   2015.07.02 16:01

我在页面上只是读取数据!没有王回传数据! 用的Html.BeginForm()这个提交的表单!但是在Controller 里面就获取不到值!

showbo
showbo   Ds   Rxr 2015.07.02 16:10

你的selOnemenu这个select有name了没有,只有id没有name浏览器不会提交这个控件值,除非你的Html.BeginForm有处理没有name的控件

zwb4050
zwb4050   2015.07.02 16:21

这是前台页面

$(document).ready(function () { GetByJquery(); GetUser(); $("#selOnemenu").change(function () { GetCity() }); }); function GetByJquery() { //$("#selOnemenu").empty(); //清空省份SELECT控件 $.getJSON("/RoleMenus/GetmenuOneList", function (data) { $.each(data, function (i, item) { $("<option></option>") .val(item["MENU_GUID"]) .text(item["MENU_NAME"]) .appendTo($("#selOnemenu")); }); //GetCity(); }); } function GetCity() { //$("#selTowmenu").empty(); //清空城市SELECT控件 //alert($("#selOnemenu").val()+">>>>>>>>>>"); var url = "/RoleMenus/GetTowMenuList?menuNum=" + $("#selOnemenu").val(); $.getJSON(url, function (data) { $.each(data, function (i, item) { $("<option></option>") .val(item["MENU_GUID"]) .text(item["MENU_NAME"]) .appendTo($("#selTowmenu")); }); }); } function GetUser() { //$("#selUserinfo").empty(); //清空省份SELECT控件 $.getJSON("/RoleMenus/GetUserList", function (data) { $.each(data, function (i, item) { $("<option></option>") .val(item["ROLES_ID"]) .text(item["ROLES_NAME"]) .appendTo($("#selUserinfo")); }); GetCity(); }); }

@using (Html.BeginForm("AddRolesMenus", "RoleMenus", FormMethod.Get))
{
一级菜单名称: 

请选择





二级菜单名称:  

请选择





用 户 名 称:  

请选择






}

            这是后台Controller   里面获取数据的方法 ,后台就是获取不到数据!

            public ActionResult AddRolesMenus(FormCollection collection)
    {
        RoleMenuInfo roleMenu = new RoleMenuInfo();
        roleMenu.RM_GUID =System.Guid.NewGuid().ToString();
        roleMenu.RM_MENU_ONE_NUM = Request.Form["selOnemenu"];
        roleMenu.RM_ROLE_NUM = Request.Form["selUserinfo"];
        roleMenu.RM_MENU_TWO_NUM = Request.Form["selTowmenu"];
        int count=RoleMenuSer.AddRoleMenuInfo(roleMenu);
        if (count > 0)
        {
            return Content("OK:添加成功!");
        }
        else
        {
            return Content("NO:添加失败!");
        }
    }
showbo
showbo 发html代码要用</>;格式化一下
2 年多之前 回复
showbo
showbo 发html代码要用&lt;/&gt;格式化一下
2 年多之前 回复
zwb4050
zwb4050   2015.07.02 16:23


请选择

                    这是其中一个控件!
zwb4050
zwb4050   2015.07.02 16:30

图片说明

showbo
showbo 有name的话自己用开发工具看下发出的ajax请求是否附带上这些数据了。
2 年多之前 回复
zwb4050
zwb4050   2015.07.02 16:46

用GET方式提交 在浏览器的地址栏里面都出来了!能看见这几个参数和值!

zwb4050
zwb4050   2015.07.02 16:55

好了,Controller 里面改成这样接收就好了 Request.Params["selOnemenu"].ToString(); 谢谢各位了!

Csdn user default icon
上传中...
上传图片
插入图片