1. 程式人生 > >MVC 從View像Controller中傳值

MVC 從View像Controller中傳值

yui str 沒有 part service form 數組 mit ber

在上一篇博客中總結了一下從Controller像View中傳值的幾種方法。事實上看那些方法和在我們最初學習VB的時候一樣,將數據庫中的數據顯示到前臺的頁面。數據庫還是那個數據庫,僅僅是如今前臺變成了瀏覽器。傳值的形式發生了變化。從View像Controller中傳值有非常多種方法,僅僅簡單的說明一下自己使用過的。

使用Form

使用Form提交的方法有非常多種,先結合上次博客中使用Model從Controller向View中傳值

一般形式的form

在View中

@*自定義的詳細要使用的viewModel*@
@modelTalentServiceCenterFileManage.ViewModel.FileWagesViewModel
 
//將表單使用post的方法提交。調用的是action中縮寫的路徑方法。這和之前學過的沒有區別
<form method="post"action="/FileWages/AddFileWagesInfo"> 
   <tablewidth="84%" border="0" cellpadding="0"cellspacing="0">
      <tr>
         <td>@Html.TextBoxFor(a => a.kindOfSalaryOld)</td>       
//這裏的a就是上面自定義的model的類型,這樣在textBox中顯示的就是對於的kindOfSalaryOld這個屬性的值,而這個值是從Controller中傳來的
         <td>@Html.TextBoxFor(a => a.kindOfSalary)</td>
      </tr>
<input type="submit"value="保存" /> //註意這裏的控件,當單擊時觸發post提交方式
   </table>
 

當中form的action中寫的是要接受數據的Controller和要使用的當中的方法。當單機submitbutton時,整個表單以post的方式提交。

在Controller中

[HttpPost]//假設有post請求就運行這裏的代碼
 
//當中的參數就是從View中傳回來的,它的屬性值就是用戶在文本框中填寫的內容
public ActionResultAddFileWagesInfo(FileWagesViewModel addFileWagesEntity)
{
         //寫詳細的用法,就能夠直接和後臺交互
}

使用BeginForm

在view中

<span style="font-size:14px;"> <div id="import"  padding-top: 10px">
        @using (Html.BeginForm("Import", FormMethod.Post, new { id = "fmImport", enctype = "multipart/form-data" }))
        {
             
            <input type="text" id="txtModify">
        }
 </div></span>

當中的“Import”是要調用的方法,“FileWages”是要調用的Controller的名字,FormMethod.Post是form提交的方式。new{}裏定義的是HTML的特性設置,能夠F12定位有對應的方法解釋。

假設要觸發表單的提交,能夠再js中控制,調用Import方法。

       function Import() {                                                                                                      window.location.href = [email protected]
/* */("AddFileWagesInfo", "FileWages")?<span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif;">txtModify</span>=‘+document.getElementById(‘#txtModify‘).value; } 以上將在text中輸入的內容以URL的方式傳到Controller中。


使用Ajax

在View中

<span style="font-size:14px;">function UpdateNews()
       {
           var date = $(‘#test‘).datagrid("getChecked");//結合EasyUI,目的是獲得選中項
           var strKey = [];
           $.each(date, function (index, item) {
                strKey.push(item.basicInformationNumber//將選中項的basicInformationNumber屬性的值加入到定義的數組中
           })
                                     console.log(strKey.join(","));//切割數組中的內容
                         //將他們作為值提交
                var Showurl = ‘/FileWages/ShowInfo?showId=‘+ strKey;
                            //使用ajax進行提交
                $.ajax({
                    type: "POST",
                    dataType: ‘json‘,
                    url: Showurl,//傳遞URL的地址
                    success: function (msg) {
                        if (msg.success) {
                            alert("刪除成功");
                        }
                        else {
                            alert(‘刪除失敗。請聯系管理員。‘,msg.errorMsg);
                        }
                    }
                });
           }
       }</span>

在Controller中

<span style="font-size:14px;">public ActionResult DelFileWagesInfo()
{
         stringstrSrchKey = Request.QueryString["DelID"].ToString();//這是我們之前非常熟悉的方法
}</span>

小結

事實上自己總結的內容網上都能查到。可是那都是別人的東西,不能由於別人寫了自己就不寫了。那知識永遠都不會是你自己的。今天開師徒會說道這樣一種情況:遇到一個問題。自己記得非常清楚原來解決過,然後就開始找自己原來的筆記、博客,非常無奈的是發現自己沒有做記錄,然後由開始從網上找資料,這樣效率比較低,並且由於沒有總結所以自己腦子裏是沒有深刻印象的。當又一次遇到的時候僅僅能在查。

所以總結一定要時時的做。不要小瞧當初解決那個問題的辦法有多簡單。讓它變成自己的!

MVC 從View像Controller中傳值