国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - ASP.NET Mvc開發之刪除修改數據

ASP.NET Mvc開發之刪除修改數據

2019-12-30 13:32強_子 ASP.NET教程

這篇文章主要介紹了ASP.NET Mvc開發中的刪除修改數據功能,感興趣的小伙伴們可以參考一下

之前那篇文章介紹了ASP.NET MVC使用EF來查詢數據和EF中DbQuery<T>泛型對象對數據的延遲加載。今天我們就來看看我們怎么使用EF來刪除數據。

其實現在的Web開發通用的模式就是前端使用Js和JQuery來和后端進行數據交互。那么我們就在前端來加兩個刪除和更新的腳本。代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 <!--遍歷 Action方法 設置給 ViewData 的集合數據,生成HTML代碼-->
@foreach (BlogArticle a in ViewData["DataList"] as List<BlogArticle>)
{
  <tr>
    <td>@a.AId</td>
    <td>@a.ATitle</td>
    <td>@a.BlogArticleCate.Name</td>
    <td>@a.Enumeration.e_cname</td>
    <td>@a.AAddtime</td>
    <!---------為文章列表添加刪除按鈕--------->>
    <td><a href="javascript:del(@a.AId)">刪除</a></td>
 
  </tr>
}

然后為該按鈕編寫Js腳本函數,代碼如下:

?
1
2
3
4
5
6
7
8
9
<script type="text/javascript">
    function del(id) {
      if (confirm("確定要刪除么?")) {
 
          <!--這里配置當用戶確定刪除時,js讓頁面跳轉到的的url地址-->
        window.location="/home/del/"+ id;
      }
    }
  </script>

上面的Js代碼的意思是,當用戶點擊刪除按鈕時,url跳轉的地址是"/home/del"+id

 點擊前的效果如下圖,注意url地址是

ASP.NET Mvc開發之刪除修改數據

它代表的意思是,瀏覽器現根據路由,請求了控制器(Controller),控制器根據路由的配置, 返回視圖方法,然后試圖再把Html,Js等回傳給瀏覽器。

點擊刪除按鈕并確定,注意url地址是

ASP.NET Mvc開發之刪除修改數據

說明我們配置的路由信息是“home/del”

所以我們在控制器的HomeController中添加一個del方法,來完成刪除操作,代碼如下:

首先我們先來看看MVC默認的路由表配置,在App_Start文件夾下的RouteConfig.cs,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//路由表配置
  public class RouteConfig
  {
    
    public static void RegisterRoutes(RouteCollection routes)
    {
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
 
      routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
      );
    }
  }

我們可以發現ur的默認配置模式是"{controller}/{action}/{id}"

默認的配置信息是defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

特別注意的是id = UrlParameter.Optional是可選的。

所以我們應該在homeController.cs中創建一個del類型的Action方法,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//刪除文章
   public ActionResult Del(int id)
   {
     //操作數據庫使用try...catch來捕捉異常
     try
     {
       //創建刪除對象
       BlogArticle artTicle = new BlogArticle();
       artTicle.AId = id;
       //將刪除對象添加到EF 對象管理容器
       db.BlogArticles.Attach(artTicle);
       //將對象包裝類的狀態標識為刪除狀態
       db.BlogArticles.Remove(artTicle);
       //更新到數據庫
       db.SaveChanges();
       //更新成功后,頁面跳轉到Index頁面
       return RedirectToAction("Index", "Home");
     }
     catch (Exception ex)
     {
       return RedirectToAction("友好頁面");
     }
     //return View();
   }

這樣就完成了數據的刪除操作。

接下來我們就來完成修改的代碼,我們先展示視圖(View)代碼如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!--生成一個表單,并且指明表單提交方法,和路由-->
 @using (Html.BeginForm("Modify", "Home", FormMethod.Post))
 {
   <table id="tbList">
     <tr>
       <td colspan="2">修改 @Html.HiddenFor(a=>a.AId) </td>
     </tr>
     <tr>
       <td>標題:</td>
       @*<td>@Html.TextBox("txtName",(object)Model.ATitle)</td>*@
 
       <!--使用HtmlHelper的強類型方法 直接 從 Model 中 根據 ATitle 屬性生成文本框-->
       <td>@Html.TextBoxFor(a=>a.ATitle)</td>
     </tr>
     <tr>
       <td>分類:</td>
       <!--使用強類型方法生成下拉框,并自動根據 model屬性里的ACate值 設置 下拉框的默認選中項-->
       <td>@Html.DropDownListFor(a=>a.ACate,ViewBag.CateList as IEnumerable<SelectListItem>)</td>
     </tr>
     <tr>
       <td>內容:</td>
       <!--使用HtmlHelper的強類型方法 直接 從 Model 中 根據 AContent 屬性生成文本域-->
       <td>@Html.TextAreaFor(a => a.AContent, 10, 60, null)</td>
     </tr>
     <tr>
       <td colspan="2"><input type="submit" value="確定修改" /> @Html.ActionLink("返回","Index","Home")</td>
     </tr>
   </table>
 }

我們的后端代碼改如何編寫呢?

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//因為我們這個Action是在表達以post方式提交時執行的,所以加上標識
    [HttpGet]
    /// <summary>
    /// 加載需要修改文章
    /// </summary>
    /// <param name="id">需要修改文章的Id</param>
    /// <returns></returns>
    public ActionResult EditArticle(int id)
    {
      //獲取需要編輯文章,并且返回該實體對象的第一個元素
      BlogArticle art = (from c in db.BlogArticles where c.AId == id select c).FirstOrDefault();
      
      //我們把文章的分類做成一個下拉列表,并且給DropList的<option>賦值
      IEnumerable<SelectListItem> seleListItem = (from a in db.BlogArticleCates where a.IsDel == false select a).ToList().Select(a => new SelectListItem { Value = a.Id.ToString(), Text = a.Name });
 
      //返回List對象
      ViewBag.CateList = seleListItem;
 
      return View();
    }
接下來就是執行修改的代碼:
[HttpPost]
    /// <summary>
    /// 執行修改的代碼
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    public ActionResult Modify(BlogArticle model)
    {
      try
      {
        //1.將實體對象 a.加入 EF 對象容器中,并 b.獲取 偽包裝類對象
        DbEntityEntry<BlogArticle> entry = db.Entry<BlogArticle>(model);
        //2.將包裝類對象的狀態設置為 unchanged
        entry.State = System.Data.EntityState.Unchanged;
        //3.設置 被改變的屬性
        entry.Property(a => a.ATitle).IsModified = true;
        entry.Property(a => a.AContent).IsModified = true;
        entry.Property(a => a.ACate).IsModified = true;
 
        //4.提交到數據庫 完成修改
        db.SaveChanges();
        //5.更新成功,則命令瀏覽器 重定向 到 /Home/List 方法
        return RedirectToAction("Index", "Home");
      }
      catch (Exception ex)
      {
        return Content("修改失敗~~~" + ex.Message);
      }
    }

到此我們就完成了使用MVC建立一個小站點的任務,而且也完成了對數據的增刪改查的操作。

希望本文所述對大家學習有所幫助。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲国产精品一区二区三区 | 国产综合一区二区 | 精品国产欧美一区二区 | 久久久久这里只有精品 | 自拍在线 | 国产精品欧美日韩 | 精品国产一区二区三区忘忧草 | 免费黄色在线观看 | 精品一区二区视频 | 欧美一区二区三区在线 | 亚洲欧美精品一区二区 | 97国产一区二区精品久久呦 | 黄色精品网站 | 日韩欧美在线一区 | 中文字幕一区日韩精品欧美 | 日本久久综合 | 久久综合久久综合久久 | 一二区视频 | 久久久久久久久久久精 | 国产一区二区亚洲 | 91精品国产一区二区三区香蕉 | 中文字幕在线永久在线视频 | 亚洲视频 欧美视频 | 亚洲成人精品一区 | 91精品久久久久久久久久入口 | 日本久久久久久久久久久久 | 欧美三级在线 | 免费一级片免费一级片 | 日韩午夜一级片 | 中文字幕一区二区三区在线视频 | 成年片| 精品久久久久久国产 | 国产精品123 | 亚洲一区二区在线播放 | 欧美激情一区二区三区在线视频 | 亚洲免费视频在线 | 亚洲精品第一区在线观看 | 日韩福利视频 | 国产99一区二区 | 黄色一级视频 | 久久狠狠|