2011-04-11 72 views
1

您好我对asp.net还有点新意,它可以做些什么。我期待在一个主页上使用一些强类型的部分视图。我不知道如何用存储库和Irepository来做到这一点。在一个主页上,asp.net的多个部分视图mvc

我只做到现在,当我尝试加载页面时不断收到错误。

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

我必须使用viewData传递信息给视图吗?任何帮助都会感激不尽,连同任何例子。 任何人可以请帮助 认为

+0

什么是错误? – 2011-04-11 20:22:22

回答

1

我将不得不使用可视数据传递 信息有何看法?

是的。

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

+0

Harvery - 我得到的错误是:对象引用未设置为对象的实例。我如何使用viewDate将其传递给视图?请你可以给我一个例子,如果可能的话,包括使用repository/Irepository/controller – Trev 2011-04-11 20:31:08

1

我打算区别于其他答案并说:。你应该而不是使用tempdata将信息传递到局部视图。根据你在做什么,你应该创建一个复合视图模型。最佳实践声明,您不应将模型直接传递给视图,而应该创建ViewModels。

看到这里接受的答案大约复合视图模式:ViewModel Best Practices

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

然后:

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

这满足的一切都将被强类型的情况。您的主页将强制键入复合视图模型,并且您的部分将被强制输入到复合视图模型中包含的视图模型。

相关问题