2010-08-10 91 views
1

這就是我所擁有的。我有一個MVC應用程序,其中所有數據都通過我的數據庫中的VisitDate表綁定在一起。主頁是VisitDate類型的強類型視圖,它所做的只是提取一些簡單的數據。現在,這是我遇到問題的地方。我需要一個鏈接,將視圖中的當前模型傳遞迴單獨的控制器操作,以便使用不同的數據呈現不同的頁面。將模型從強類型視圖傳遞迴控制器動作 - mvc2 VB.net

這是我的兩個控制器操作。我將從News.aspx到FrontPage.aspx,並希望通過SchoolVisit。

Function News(ByVal SchoolVisit As SchoolVisitDate) As ActionResult 

    Dim db As New NewsData.NewsDB 
    Dim repos As New NewsRepository 

    Dim _classId As Integer 
    _classId = (From a In db.SchoolClasses Where a.VisitDateID = SchoolVisit.VisitDateID Select a.ClassID).Single() 

    ViewData("VisitDate") = FormatDateTime(SchoolVisit.VisitDate, vbShortDate) 

    ViewData("Staff") = repos.GetStaff(_classId) 
    ViewData("StockArticles") = From a In db.StockArticles Select a 

    ViewData("Articles") = repos.GetArticles(_classId) 

    Return View() 
End Function 

Function FrontPage(ByVal SchoolVisit As SchoolVisitDate) As ActionResult 

    Dim repos As New NewsRepository 
    Dim _VisitDateID As Integer 

    _VisitDateID = SchoolVisit.VisitDateID 

    ViewData("Editorial") = repos.GetEditorial(_VisitDateID) 
    Return View() 
End Function 

回答

2

Html.ActionLink能有所幫助

+0

我一直在搞這個,似乎無法得到正確的語法。 <%:Html.ActionLink(「Page」,「FrontPage」,「Home」,{With {.VisitDate = Model}})%> 這會傳回路徑值?Length = 4 – keynone 2010-08-10 15:27:56

+0

您必須通過模型數據作爲命名參數例如<%:Html.ActionLink(「Page」,「FrontPage」,「Home」,visitDate = Model.VisitDate})%> – 2010-08-10 15:55:28

1

這裏是你必須做的:

  1. 你應該把強類型的SchoolVisitDate新聞視圖。
  2. 有提交的強類型SchoolVisitDate東西后回到控制器
  3. 添加POST方法到控制器
  4. 有post方法重定向到FrontPage視圖的形式。
+0

這將工作,但是,鏈接在菜單中,我不想欺騙css使提交按鈕看起來像文本鏈接:/ – keynone 2010-08-10 19:49:47

+0

我猜你是從WebForms過來的......如果你買進它,MVC是非常有用的。你的代碼看起來像Webforms一樣,你不會真的這樣利用它的力量。 – Shlomo 2010-08-10 20:09:49

+0

您希望在絕大多數時間使用強類型模型,http-post需要將內容發送回用戶反饋時,http-get帶有隱藏的id引用,如果您沒有。 – Shlomo 2010-08-10 20:11:27

相關問題