使用ASP.NET MVC3+EF+Jquery製作文字直播系統(三)

來源:互聯網
上載者:User

上一篇簡單的實現了一下登入的功能,這一篇首先把背景架構撘一撘。

搭架構

還是使用上文提到的模板,該模板使用frameset架構,關於在ASP.NET MVC下如何使用frameset架構,我推薦大家看一篇文章在ASP.NET MVC下使用frameset架構!。

上一篇中,我們在View檔案夾下建立了一個Admin檔案夾,所以,我們先建立一個AdminController,添加如下代碼:

public class AdminController : Controller{    //    // GET: /Admin/    [Authorize]    public ActionResult Index()    {        return View("Index");    }    [Authorize]    public ActionResult Top()    {        return View("Top");    }    [Authorize]    public ActionResult Left()    {        return View("Left");    }}

相對應建立如下視圖:

Index.cshtml裡面使用frameset引用Top.cshtml和Left.cshtml,方式如下,具體可以看上面那篇文章。

<frame src="@Url.Action("Top")" noresize="noresize" frameborder="NO" name="topFrame" scrolling="no" marginwidth="0" marginheight="0" target="main" />

下面還需要修改一下AccountController裡面的LogOn action,具體如下:

//// POST: /Account/LogOn[HttpPost]public ActionResult LogOn(LogOnViewModel model){    if (ModelState.IsValid)    {        if (context.Users.Any(u => u.UserName == model.UserName && u.Password == model.Password))        {            FormsAuthentication.SetAuthCookie(model.UserName, false);            //下面是修改的地方            return RedirectToAction("Index", "Admin");        }        else        {            ModelState.AddModelError("", "使用者名稱或密碼不正確");        }    }    return View(model);}

這樣架構大體就搭好了,效果如下:

實現使用者管理

要實現使用者管理,我們先修改LiveText.Domain項目中User實體,因為我們是用Code-First產生的資料庫,如果修改了實體,再一次運行就會出錯,所以第一件要做的事就是在LiveText.WebUI項目中的Model檔案夾中建立一個LiveTextDbInitializer類,用於當實體發生變化時重建資料庫。

public class LiveTextDbInitializer : DropCreateDatabaseIfModelChanges<LiveTextDbContext>{    protected override void Seed(LiveTextDbContext context)    {        context.Users.Add(new Domain.Entities.User        {            UserName = "admin",            Password = "admin"        });        base.Seed(context);    }}

然後在Global.asax中的 Application_Start方法中註冊一下:

Database.SetInitializer(new LiveTextDbInitializer());

下面我們就可以修改User實體了。如果一開始都寫好的話,現在就不用修改了,麻煩,。修改後的代碼如下:

public class User{    /// <summary>    /// 使用者編號    /// </summary>    public virtual int UserID { get; set; }    /// <summary>    /// 使用者名稱    /// </summary>    [Required(ErrorMessage = "不可為空")]    [StringLength(30)]    [Display(Name = "使用者名稱")]    public virtual string UserName { get; set; }    /// <summary>    /// 使用者密碼    /// </summary>    [Required(ErrorMessage = "不可為空")]    [DataType(DataType.Password)]    [StringLength(30, MinimumLength = 5, ErrorMessage = "密碼最短為5個字元")]    [Display(Name = "密碼")]    public virtual string Password { get; set; }}

接下來,我們建立一個UserController,按照所示選擇。

最後,將Left.cshtml裡面的超連結改一下:

   <li><a href="@Url.Action("Create", "User")" target="main">添加使用者</a></li>   <li><a href="@Url.Action("Index", "User")" target="main">使用者列表</a></li>

OK,再運行一下程式:

沒有加樣式,所以很難看

實現文字直播管理

首先,實作類別別管理。

修改Category實體。

public class Category{    /// <summary>    /// 類別編號    /// </summary>    public virtual int CategoryID { get; set; }    /// <summary>    /// 類別名稱    /// </summary>    [Required(ErrorMessage = "不可為空")]    [Display(Name = "類別名稱")]    public virtual string Name { get; set; }    /// <summary>    /// 標題集合    /// </summary>    public virtual List<Title> Titles { get; set; }}

建立CategoryController。

Now,類別管理完成了,看一下運行效果:

第二,實現標題管理

首先修改Title實體。

public class Title{    /// <summary>    /// 標題編號    /// </summary>    public virtual int TitleID { get; set; }    /// <summary>    /// 類別編號    /// </summary>    [Required(ErrorMessage = "類別不可為空")]    public virtual int CategoryID { get; set; }    /// <summary>    /// 標題名稱    /// </summary>    [Required(ErrorMessage = "標題不可為空")]    [Display(Name = "標題名稱")]    public virtual string Name { get; set; }    /// <summary>    /// 所屬類別    /// </summary>    public virtual Category Category { get; set; }    /// <summary>    /// 文字集合    /// </summary>    public virtual List<Text> Texts { get; set; }}

建立TitleController。

這樣就完成了,看一下運行效果:

實現文字管理

首先修改Text實體。

public class Text{    /// <summary>    /// 文字編號    /// </summary>    public virtual int TextID { get; set; }    /// <summary>    /// 標題編號    /// </summary>    [Required(ErrorMessage = "標題不可為空")]    [Display(Name = "所屬標題")]    public virtual int TitleID { get; set; }    /// <summary>    /// 發表人    /// </summary>    [Required(ErrorMessage = "發表人不可為空")]    [Display(Name = "發表人")]    public virtual string Prolocutor { get; set; }    /// <summary>    /// 發表內容    /// </summary>    [Required(ErrorMessage = "發表內容不可為空")]    [Display(Name = "發表內容")]    public virtual string ProContent { get; set; }    /// <summary>    /// 標題    /// </summary>    [Display(Name = "發表時間")]    public virtual DateTime ProDate { get; set; }    /// <summary>    /// 所屬標題    /// </summary>    [Display(Name = "所屬標題")]    public virtual Title Title { get; set; }}

建立TextController。

OK,看一下運行結果:

今天到此為止,下一篇用JQuery在前台顯示。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.