用户控制
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<%
using (MvcApplication1.Models.EgovtDataContext _model = new MvcApplication1.Models.EgovtDataContext())
{
%>
<% foreach(var md in MvcApplication1.Models.) { %>
<% if (md.ParentId == 0)
{ %>
<% } %>
<% } %>
<%} %>
FeatureRepository类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcApplication1.Models
{
public class FeaturesRepository
{
EgovtDataContext db = new EgovtDataContext();
public IEnumerable<Feature> GetAllFeatures()
{
List<Feature> Features = new List<Feature>();
Feature feature = new Feature();
var AllParentFeatures = FeaturesByParentId(0);
foreach (Feature frParentCategory in AllParentFeatures)
{
feature.int_FeatureId = frParentCategory.int_FeatureId;
feature.vcr_FeaturesName = frParentCategory.vcr_FeaturesName;
feature.int_ParentId = frParentCategory.int_ParentId;
Features.Add(feature);
var AllChildFeaturesofthatParent = FeaturesByParentId(frParentCategory.int_FeatureId);
int AllChildFeaturesofthatParentCount = AllChildFeaturesofthatParent.Count();
foreach (Feature frChildCategory in AllChildFeaturesofthatParent)
{
feature.int_FeatureId = frParentCategory.int_FeatureId;
feature.vcr_FeaturesName = frParentCategory.vcr_FeaturesName;
feature.int_ParentId = frParentCategory.int_ParentId;
Features.Add(feature);
}
}
return Features;
}
}
}
1)这是在上面的方法中正确完成的公共IEnumerable GetAllFeatures()吗?并正确编写了方法? 2)我想在上面的控件中调用GetAllFeatures方法?我该怎么办? 3)应该在共享文件夹中创建用户控制器?什么是共享文件夹?
答案 0 :(得分:5)
创建控制器操作
public ActionResult All()
{
return View(new FeaturesRepository().GetAllFeatures());
}
并更改您的usercontrol声明
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Feature>>" %>
<% foreach(var md in Model)
{ %>
<% if (md.ParentId == 0)
{ %>
//blabla
<% } %>
<% } %>
答案 1 :(得分:1)
您需要在控制器中创建此存储库类的实例,并使用实例调用返回所有功能的IList并访问模型中的Ilist的方法。
答案 2 :(得分:1)
上述方法看起来不错,但我不知道您的业务规则细节。只是一些代码语法更改会很好(比如使用大写F的功能,是错误的大小写)等等。
关于通话,您不能只从“查看”或“查看用户”控件调用上述方法。在渲染视图之前,必须使用此方法的数据填充ViewData或Model。另一种方法是使用JavaScript,特别是JSON调用,以从返回JsonResult或ContentResult或类似内容的操作中请求数据。
控制器操作应该典型地返回ActionResult或从中继承的类型(ContentResult,JsonResult,RedirectToActionResult等)。