ASP.NET MVC3 執行個體(六) 增加、修改和刪除操作(二)

來源:互聯網
上載者:User

標籤:des   android   c   class   code   a   

http://www.jquery001.com/asp.net-mvc3-instance-add-update-delete2.html

 

上篇我們在 ASP.NET MVC3 中實現了添加操作,由於時間關係沒有完成修改、刪除操作,我們建立了一個名為"Contact"的 Controller,並實現了添加方法,下邊就讓我們在此基礎上來完成 ASP.NET MVC3 中的修改和刪除操作。

首先,我們在 Contact 控制器類中添加一個名為 View()的方法,用來從 Contact 表中取出留言資料,並傳遞給列表頁 "Index",方法如下:

//// GET: /Contact/publicActionResultIndex(){var contact =from c in android.Contactwhere c.IsValid==1orderby c.ID descendingselect c;returnView(contact.ToList());}

我們使用 Linq 從 Contact 表中取出了所有有效資料(IsValid==1),並按ID降序顯示。接下來,添加名為"Index"的視圖,最終 "Index" 全部代碼如下:

@modelIList<Android.Models.Contact><p>@Html.ActionLink("Create New","Create")</p><table><tr><th>UserName</th><th>Content</th><th>Addtime</th></tr>@foreach(var item inModel){<tr><td>@item.UserName</td><td>@item.Content</td><td>@item.Addtime</td><td>@Html.ActionLink("編輯","Edit",new{ id=item.ID })|@Html.ActionLink("刪除","Delete",new{ id = item.ID })</td></tr>}</table>

可以看到,顯示用的代碼是非常整潔的,我們沒有做樣式方面的美化,最終的列表頁效果如下:

修改操作、刪除操作傳遞的參數都是留言ID,首先,我們看看修改操作,分別給 "Contact" Controller 添加名為 Edit() 兩個方法,1.用來根據根據ID得到留言實體,並返回給編輯頁;2.完成修改操作。如下:

//// GET: /Contact/Edit/5publicActionResultEdit(int id){var message = android.Contact.Single(m => m.ID == id);returnView(message);}//// POST: /Contact/Edit/5[HttpPost]publicActionResultEdit(int id,FormCollection collection){try{var message = android.Contact.Single(m => m.ID == id);UpdateModel(message);        android.SaveChanges();returnRedirectToAction("Index");//返回到列表}catch{returnView();}}

為了簡潔起見,修改時我們只修改留言是否有效,其他的和這個類似,"Edit"視圖最終代碼如下:

@modelAndroid.Models.Contact@using(Html.BeginForm()){<fieldset><legend>Contact</legend>@Html.HiddenFor(model => model.ID)<div class="editor-label">@Html.LabelFor(model=>model.Content,"留言內容")</div><div class="editor-field">@Model.Content</div><div class="editor-label">@Html.LabelFor(model => model.IsValid,"是否有效")</div><div class="editor-field">有效@Html.RadioButtonFor(model=>model.IsValid,1)無效@Html.RadioButtonFor(model=>model.IsValid,0)</div><p><input type="submit" value="Save"/></p></fieldset>}

頁面的效果如所示:

其中RadioButtonFor同LabelFor使用方法類似,這樣當我們點擊列表頁中的"編輯"時,先執行第一個"Edit"方法,根據ID將實體返回到我們的編輯頁。當我們點擊"Save"提交時,執行第二個"Edit"方法,並對資料庫中的"Contact"表進行了修改操作,這樣實現了在 ASP.NET MVC3 中的修改操作。

下邊看看刪除操作,"Contact" 控制器類中的刪除方法只使用 Get 方式的就行,因為我們將根據傳遞過來的ID直接進行刪除操作,如下:

//// GET: /Contact/Delete/5publicActionResultDelete(int id){try{var contact = android.Contact.Single(c => c.ID == id);        android.DeleteObject(contact);        android.SaveChanges();}catch{}returnRedirectToAction("../Contact");}

當然了此時的"Delete" 視圖完全為空白也是可以的。刪除操作執行後返回到我們的留言列表中,到這裡刪除操作就完成了。這裡使用真刪除是為了說明DeleteObject()方法,一般這種情況我們只需將"IsValid"欄位修改為0即可,並不做真刪除。還有一點要注意的是,例子中使用try進行異常的處理,因為 Linq 查詢時會在有問題時拋出相應的異常、SaveChanges()也會拋出異常。

從這兩篇文章我們不難發現,在 ASP.NET MVC3中我們不再需要手動寫代碼來接收參數了,你可以在添加、修改操作中看到我們並沒有手動寫代碼來接收以"Post"方式提交過來的表單資料。如果你看的 MVC 3中的有些文章還在使用Request["parameter"]、Request.Form["parameter"]、Request.QueryString["parameter"]、collection["parameter"](collection 是 FormCollection 類對象)的方式接收參數,你就需要注意下了。當然,ASP.NET MVC3中還有非常多的特徵,本系列還將會進行介紹。

好了,到這裡就完全實現了在 ASP.NET MVC3中的增加、修改、刪除操作,希望對很多新學 ASP.NET MVC3 的朋友能帶來一些協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.