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代码要用</>;格式化一下
大约 3 年之前 回复
showbo
showbo 发html代码要用&lt;/&gt;格式化一下
大约 3 年之前 回复
zwb4050
zwb4050   2015.07.02 16:23


请选择

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

图片说明

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

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

zwb4050
zwb4050   2015.07.02 16:55

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
使用Html.BeginForm来提交表单
1.Html.BeginForm() 该方法用于构建一个From表单的开始,他的构造方法为:  Html.BeginForm("ActionName","ControllerName",FormMethod.method)  一般构建一个表单结构如下 <% using(Html.BeginForm ("index","home",FormMethod.Post)){ %>
[.Net码农][MVC]使用Html.BeginForm来提交表单
http://www.cnblogs.com/zgqys1980/archive/2012/07/31/2617159.html 1.Html.BeginForm()  该方法用于构建一个From表单的开始,他的构造方法为: Html.BeginForm("ActionName","ControllerName",FormMethod.method) 一般构建一个表单结构如
MVC3.0.关于@Html.BeginForm()提交,控制器无法获得Model
今天在用@html.beginform()提交表单的时候,控制器一直获取不到相应的model
MVC |表单提交 Html.BeginForm
用户提交 写法一(推荐) BeginForm里不带参数,就表示请求从哪里来,表单就提交到哪里去。 因为当前视图是Home控制器下的Index视图。所以,当请求这个Index视图的时候,form的action的提交的地址就是/Home/Index --> @using (Html.BeginForm("Add","Home",new{ id=2
Mvc Html.BeginForm 方式提交Form前验证
1.用一下代码括住提交的表单区域     @using(Html.BeginForm("AddMemberBaseInfo", "MemberManagement",FormMethod.Post, new { enctype = "multipart/form-data" }))     {         保存"/>            } 2.js代码     $(doc
@using (Html.BeginForm())参数示例
@using (Html.BeginForm())参数示例 1、指定表单提交方式和路径等 @using (Html.BeginForm("Index", "Home", FormMethod.Get, new { name = "nbform", id = "nbform" })) 2、指定表单提交为数据方式 @using (Html.BeginForm("
Asp.Net MVC Ajax.BeginForm 提交数据成功弹框跳转页面
1. Edit.cshtml 页面 @model Model.UserInfo @{     ViewBag.Title = "Edit";     var options = new AjaxOptions()     {         Url = Url.Action("Edit", "Home"),         LoadingElementId = "saving",
如何防止多次提交同一个表单?
http://www.cnblogs.com/jghhandsome/archive/2007/03/27/689523.html 方法(一):将button的属性改为disable           function   button1_onclick()      {            form1.button1.disabled=true      }     
Ajax.BeginForm返回方法OnSuccess
Ajax.BeginForm返回方法OnSuccess = "refresh" 在后台Controller里return Content("OK"); 前台:     function refresh(e) {         if (e.toString() == "OK") {             alert("评论成功!");             window.l
asp.net MVC 使用Ajax.BeginForm 无刷新提交from表单
新建MVC项目 MVC5测试  在 Models文件夹下新建类 TestViewModel using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace MVC5测试.Models { public class TestViewM