zoukankan      html  css  js  c++  java
  • asp.net mvc js 获取model值。

    cshtml页面部分代码: 
    div class="col-sub">
             @using (Html.BeginForm("SaveTTMallConfig", "TTMall", FormMethod.Post, new { id="J_ttmall_form"}))
             {
            <div>
                <fieldset>
                    <div id="J_ttmall_config2" class="">
                        <div class="editor-field">
                            <label class="hd">
                                模板主题:</label>
                            @Html.RadioButtonListFor(m => m.Scheme, "mallScheme", System.Web.UI.WebControls.RepeatDirection.Horizontal)
                        </div>
                        <div class="editor-field">
                            <label class="hd">
                                模板规格:</label>
                            @Html.RadioButtonListFor(m => m.Size, "mallSize", System.Web.UI.WebControls.RepeatDirection.Horizontal)
                        </div>
    <script>
         //在这里获取m.Scheme,m.Size的值
         //不考虑根据html结构找id等等方法
         //直接获得form封装后的 key value 可以
         //直接获得更改后的model.Scheme等的值 可以
    </script>
    
    


    如上所述,在js中获得表单提交的各个值,或者获得model更改后的值,请帮忙小弟,不胜感激!
     

    回复讨论(解决方案)

    <script type="text/javascript">
        var ss = '@Model.Scheme;
        alert(ss);
    </script>
    
    应该不行吧。javascript只能取得页面上的值。 

    不过你可以将m.Scheme,m.Size的值赋给hidden field,再在javascript中取。
    应该不行吧。javascript只能取得页面上的值。 

    不过你可以将m.Scheme,m.Size的值赋给hidden field,再在javascript中取。


    如果控制器像页面返回了当前Model,那么在JS中是可以那么获取的
     var ss =' @Model.Scheme'; 
     相当于webfrom中的  
     var ss='<%=xx%>'
    HTML code 

    <script type="text/javascript"> 
        var ss = '@Model.Scheme; 
        alert(ss); 
    </script>

    这个是静态的,不是动态的值呀.
    不建议这么写可以将MODEL的值赋给hidden通过JS获取
     var ss =' @Model.Scheme'; 
     相当于webfrom中的  
     var ss='<%=xx%>'


    如果可以的话, 这个办法好。
    不建议这么写可以将MODEL的值赋给hidden通过JS获取

     @Html.RadioButtonListFor(m => m.Scheme, "mallScheme", System.Web.UI.WebControls.RepeatDirection.Horizontal) 
    我要获得这个m.Scheme的值,页面是传进来一个model.scheme,不过那个是静态的,我要获得是值表单里面的,是动态的.
    是经过表单更改后的model的各个项的值
    或者有没有方法,在知道表单id的情况下,获得当前表单里面的各项的值.
    HTML code 


    <script type="text/javascript"> 
        var ss = '@Model.Scheme; 
        alert(ss); 
    </script>


    这个本身就是动态的,你在控制器中已经向页面返回了Model,而这个Model中,当然会包含你的那些属性,像 
    Scheme,Size等,而这个Model是从数据库里查出来的,当你修改了之后,刷新页面,控制器会根据地址栏的ID查询该ID的记录,然后向页面返回这个Model,都已经得到了,还要赋值给隐藏域?这不是表单提交
    引用 2 楼  的回复: 
    HTML code 


    <script type="text/javascript"> 
    var ss = '@Model.Scheme; 
    alert(ss); 
    </script> 


    这个本身就是动态的,你在控制器中已经向页面返回了Model,而这个Model中,当然会包含你的那些属性,像 
    Scheme,Size等,而这个Model是从数据库里查出……

    用户操作过程:打开页面->填写修改表单->点击预览->保存(提交表单) 
    我要在用户 填写修改表单-至(获取表单各项值)-保存 这个过程中获取表单的值.
    晕,我就是在表单未提交之前,不与controller交互获取,js中获取表单项的值
    注意,我上面写的不是表单提交代码,而是初次访问页面的时候访问当前页面对应ID的Model,并返回在页面上 

    就像WebForm中的,修改用户信息一样,进入修改页面,你肯定先根据当前ID查询之前的字段值呀,比如用户名,性别,爱好,然后显示在页面上,提交的时候在根据你修改的进行提交呀,也就是说在修改页面,用户肯定要先看到自己之前的信息,而这些是提交之前的 

    而上面的代码正是在提交之前的初始化页面操作 


    怎么?换了一个环境就转不过来了? 

    真正的提交代码,应该如下呀,传过来修改的模型呀 
     [HttpPost]
            public ActionResult Edit(Bif model)
            {
                BIF bif = db.BIF.Single(b => b.Id == id);
                bif.UserName=model.UserName;
                //.........
                return View(bif);
            }


    可以试试通过js遍历表单个元素,然后通过判断是否为radio类型 如果是取出radio的值
  • 相关阅读:
    UML学习——用例图(二)
    servlet相关生命周期(二)
    UML 学习——UML概述(一)
    servlet概述(一)
    java 核心编程——线程之线程控制(五)
    java 核心编程——线程之线程池(ExecutorService)(四)
    java 核心编程——线程之线程组(四)
    java 核心编程——线程之定时器(TimerTask)(三)
    java 核心编程——线程之线程的开发方法(二)
    java 核心编程——线程之线程的基本概念(一)
  • 原文地址:https://www.cnblogs.com/chenli0513/p/5783332.html
Copyright © 2011-2022 走看看