您好我仍然是asp.net的新手,它能做些什么。我希望在一个主要主页上使用一些强类型的部分视图。我不知道如何使用存储库和Irepository执行此操作。
到目前为止,我只完成了此操作,并在尝试加载页面时出现错误。
<%Html.RenderPartial("~/Views/Shared/Partial.ascx", Model);%>
我是否必须使用viewData将信息传递给视图?任何帮助都会感激不尽,以及任何例子。 任何人都可以帮忙 问候
答案 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)
这样可以满足您的需求,因为所有内容都是强类型的。您的主页是强类型的复合视图模型,您的部分将强烈键入到复合视图模型中包含的视图模型。