MVC 從View像Controller中傳值
在上一篇博客中總結了一下從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]
使用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中傳值