2013-12-22 1 views
0

У меня есть следующая проблема с моим лесного управления Applpication:asp.net MVC4 Доступ к переменной из вида в другой точке зрения (ActionLink)

Index.cshtml:

@model IEnumerable<ForestryManagement.Models.Forestry> 

@foreach (var forestry in Model) 
    { 
     <li>@Html.ActionLink(forestry.Name, "Index12", new {tree = forestry.ForestryID}) 


    } 

Когда ты нажмите на одном лесном хозяйстве (ActionLink), вы будете перенаправлены на Index12, где деревья из этих лесов перечислены

Index12.cshtml:

@model IEnumerable<ForestryManagement.Models.Tree> 

@foreach (var item in Model) { 
    <tr> 


     <td> 
      @Html.DisplayFor(modelItem => item.treeName) 

     </td> 
     </tr> 

@Html.ActionLink("Create new Tree", "Create", new { id = **??????**}) //need ForestyID from Index.cshtml here 

Теперь, когда я создам еще одно дерево в этом лесном хозяйстве, я нужен идентификатор из лесного хозяйства на моей странице Index12.cshtml для ActioLink

+0

Вы должны использовать вид модель - не передавать ваши объекты данных ваших мнений - и поместить идентификатор в модели для каждого вида. http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-3 –

ответ

0

Создание модели представления для перечисления деревьев, например, так:

public class TreeListingViewModel 
{ 
    public int ForestryId { get; set; } 

    public IEnumerable<TreeViewModel> Trees { get; set; } 
} 

Примечание: предпочитает создание TreeViewModel вместо того, чтобы просто используя вашу Tree сущности данных, чтобы уменьшить зависимость между видом и моделью данных (а также повысить уровень безопасности, поскольку люди могут достаточно легко придать свойства в вашу базу данных, если вы подвергаете ваши объекты данных непосредственно к вашему представлению).

Pass, что на ваш взгляд, вместо:

@model TreeListingViewModel 

... 

@Html.ActionLink("Create new Tree", "Create", new { id = Model.ForestryId }) 
+0

THX за вашу помощь – user3126813

Смежные вопросы