2016-02-26 81 views
0

我是一个完整的ASP.NET框架,对MVC的工作方式知之甚少,我的任务是在MVC中创建一个数据库以下信息 -如何使用cookie将数据库信息从一个页面传输到另一个页面使用MVC

ASP.NET: 
public class Charity 
    { 
     public int ID { get; set; } 
     public string DisplayName { get; set; } 
     public DateTime Date { get; set; } 
     public Double Amount { get; set; } 
     public Double TaxBonus { get; set; } 
     public String Comment { get; set; } 
    } 

    public class CharityDBContext : DbContext //controls information in database 
    { 
     public DbSet<Charity> Donations { get; set; } //creates a donation database 
    } 

最后一类用于创建数据库,数据库本身起作用。不过,我要显示的用户数据库信息,使用Cookie在第二页后,他们点击立即捐款按钮 -

<p> 
    @Html.ActionLink("Donate Now", "Create") 
</p> 

如何能饼干在MVC产生的呢?我应该创建一个新的类吗?或新的控制器?对此感到遗憾,大学的讲师并没有真正教会我们,因为这是一个新课题。

+1

为什么不将ID作为路由参数发送到“创建”页面并从数据库中获取?当然,从高性能数据库获取它比通过消费者Internet连接来回传递效率更高。 –

+0

感谢您的帮助:) – Edafy

+0

N.b.这意味着根本不使用cookie。 –

回答

0

More Information

至于我的知识所及,四种不同的方法存在是为了处理在asp.net MVC控制器之间的数据传递。它们是1. ViewData 2. ViewBag 3. TempData和4.会话。

码在第一控制器:在第二控制器

TempData["sendFlag"] = sendStoredInfo; 
return RedirectToAction("LoginFailed"); 

代码:

public ActionResult LoginFailed() 
{ 
    bool sendFlag = TempData.ContainsKey("sendFlag")? TempData["sendFlag"]: false; 
} 

或在您的重定向尝试

return RedirectToAction("Index", "Nome", new{ username: username}) 

但你的控制器的行动必须(字符串用户名)作为参数,如

public ActionResult Index(string username) 
{ 
    return View(); 
} 
+0

'ViewData'和'ViewBag'不能用于在控制器之间传递信息。而'TempData'是'Session' –

相关问题