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的值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM