在一个主要主页上的多个局部视图,asp.net mvc

时间:2011-04-11 20:15:23

标签: asp.net asp.net-mvc partial-views

您好我仍然是asp.net的新手,它能做些什么。我希望在一个主要主页上使用一些强类型的部分视图。我不知道如何使用存储库和Irepository执行此操作。

到目前为止,我只完成了此操作,并在尝试加载页面时出现错误。

  <%Html.RenderPartial("~/Views/Shared/Partial.ascx", Model);%>

我是否必须使用viewData将信息传递给视图?任何帮助都会感激不尽,以及任何例子。 任何人都可以帮忙 问候

2 个答案:

答案 0 :(得分:1)

  

我是否必须使用viewData传递   信息到视图?

如果您不想通过相同的控制器方法将数据传递到部分视图,请考虑使用RenderAction而不是RenderPartial。您将需要更多的控制器方法,但每次使用局部视图时,您都不必在现有的控制器方法中重复数据绑定代码。

答案 1 :(得分:1)

我将与其他答案不同并说:。您应该使用tempdata将信息传递到局部视图中。根据您正在做的事情,您应该创建一个复合视图模型。最佳实践声明您不应将模型直接传递给您的视图,而应创建ViewModels。

请参阅此处有关复合视图模型的已接受答案:ViewModel Best Practices

public class CompositeViewModelAB {
    public ViewModelA viewModelA { get; set; }
    public ViewModelB viewModelB { get; set; }
}

然后:

@Partial("~/path.cshtml", Model.viewModelA)

这样可以满足您的需求,因为所有内容都是强类型的。您的主页是强类型的复合视图模型,您的部分将强烈键入到复合视图模型中包含的视图模型。