繁体   English   中英

“名称空间不能直接包含诸如字段或方法之类的成员” File:具有上下文的控制器

[英]“A namespace cannot directly contain members such as fields or methods” File: controller with context

<#@ template language="C#" HostSpecific="True" #>
<#
var Model = (MvcTextTemplateHost)Host;
var routePrefix = String.Empty;
if (!String.IsNullOrWhiteSpace(Model.AreaName)) {
routePrefix = "/" + Model.AreaName;
}
routePrefix += "/" + Model.ControllerRootName + "/";
#>
<#@ import namespace="System.Collections" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="System.Data.Objects" #>
<#@ import namespace="System.Linq" #>
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
<# if(MvcTextTemplateHost.NamespaceNeeded(Model.Namespace,         Model.ModelType.Namespace)) { #>
using <#= Model.ModelType.Namespace #>;
<# } #>
<# if(Model.ContextType.Namespace != Model.ModelType.Namespace &&   MvcTextTemplateHost.NamespaceNeeded(Model.Namespace,  Model.ContextType.Namespace)) { #>
using <#= Model.ContextType.Namespace #>;
<# } #>
namespace <#= Model.Namespace #>
{
<#
var modelName = Model.ModelType.Name;
var entitySetName = Model.EntitySetName;
var modelVariable = modelName.ToLower();
var entitySetVariable = entitySetName.ToLower();
var primaryKey = Model.PrimaryKeys[0];
var lambdaVar = modelVariable[0];
var isObjectContext =   typeof(ObjectContext).IsAssignableFrom(Model.ContextType);
#>
public class <#= Model.ControllerName #> : BootstrapBaseController
{
    private <#= Model.ContextType.Name #> db = new <#= Model.ContextType.Name #>();

    //
    // GET: <#= routePrefix #>

    public ActionResult Index()
    {
<#  var includeExpressions = "";
if(isObjectContext) {
    includeExpressions = String.Join("",  Model.RelatedProperties.Values.Select(property => String.Format(".Include(\" {0}\")", property.PropertyName)));
}
else {
    includeExpressions = String.Join("", Model.RelatedProperties.Values.Select(property => String.Format(".Include({0} =>  {0}.{1})", lambdaVar, property.PropertyName)));
}
#>
# if(!String.IsNullOrEmpty(includeExpressions)) { #>
        var <#= entitySetVariable #> = db.<#= entitySetName #><#=    includeExpressions #>;
        return View(<#= entitySetVariable #>.ToList());
<# } else { #>
        return View(db.<#= entitySetName #><#= includeExpressions   #>.ToList());
<# } #>
    }

    //
    // GET: <#= routePrefix #>Details/5

    public ActionResult Details(<#= primaryKey.ShortTypeName #> id)
    {
<# if(isObjectContext) { #>
        <#= modelName #> <#= modelVariable #> = db.<#= entitySetName   #>.Single(<#= lambdaVar #> => <#= lambdaVar #>.<#= primaryKey.Name #> == id);
<# } else { #>
        <#= modelName #> <#= modelVariable #> = db.<#= entitySetName  #>.Find(id);
<# } #>
        if (<#= modelVariable #> == null)
        {
            return HttpNotFound();
        }
        return View(<#= modelVariable #>);
    }

    //
    // GET: <#= routePrefix #>Create

    public ActionResult Create()
    {
<# foreach (var property in Model.RelatedProperties.Values) { #>
        ViewBag.<#= property.ForeignKeyPropertyName #> = new SelectList(db.  <#= property.EntitySetName #>, "<#= property.PrimaryKey #>", "<#=  property.DisplayPropertyName #>");
<# } #>
        return View(new <#= modelName #>());
    }

    //
    // POST: <#= routePrefix #>Create

    [HttpPost]
    public ActionResult Create(<#= modelName #> <#= modelVariable #>)
    {
        if (ModelState.IsValid)
        {
<# if(primaryKey.Type == typeof(Guid)) { #>
            <#= modelVariable #>.<#= primaryKey.Name #> = Guid.NewGuid();
<# } #>
<# if(isObjectContext) { #>
            db.<#= entitySetName #>.AddObject(<#= modelVariable #>);
<# } else { #>
            db.<#= entitySetName #>.Add(<#= modelVariable #>);
<# } #>
            db.SaveChanges();
            return RedirectToAction("Index");
        }

<# foreach (var property in Model.RelatedProperties.Values) { #>
        ViewBag.<#= property.ForeignKeyPropertyName #> = new SelectList(db.  <#= property.EntitySetName #>, "<#= property.PrimaryKey #>", "<#=  property.DisplayPropertyName #>", <#= modelVariable #>.<#=  property.ForeignKeyPropertyName #>);
<# } #>
        return View(<#= modelVariable #>);
    }

    //
    // GET: <#= routePrefix #>Edit/5

    public ActionResult Edit(<#= primaryKey.ShortTypeName #> id = <#=  primaryKey.DefaultValue #>)
    {
<# if(isObjectContext) { #>
        <#= modelName #> <#= modelVariable #> = db.<#= entitySetName   #>.Single(<#= lambdaVar #> => <#= lambdaVar #>.<#= primaryKey.Name #> == id);
<# } else { #>
        <#= modelName #> <#= modelVariable #> = db.<#= entitySetName  #>.Find(id);
<# } #>
        if (<#= modelVariable #> == null)
        {
            return HttpNotFound();
        }
<# foreach (var property in Model.RelatedProperties.Values) { #>
        ViewBag.<#= property.ForeignKeyPropertyName #> = new SelectList(db.   <#= property.EntitySetName #>, "<#= property.PrimaryKey #>", "<#=  property.DisplayPropertyName #>", <#= modelVariable #>.<#=  property.ForeignKeyPropertyName #>);
<# } #>
        return View("Create", <#= modelVariable #>);
    }

    //
    // POST: <#= routePrefix #>Edit/5

    [HttpPost]
    public ActionResult Edit(<#= modelName #> <#= modelVariable #>)
    {
        if (ModelState.IsValid)
        {
<# if(isObjectContext) { #>
            db.<#= entitySetName #>.Attach(<#= modelVariable #>);
            db.ObjectStateManager.ChangeObjectState(<#= modelVariable #>,  EntityState.Modified);
<# } else { #>
            db.Entry(<#= modelVariable #>).State = EntityState.Modified;
<# } #>
            db.SaveChanges();
            return RedirectToAction("Index");
        }
<# foreach (var property in Model.RelatedProperties.Values) { #>
        ViewBag.<#= property.ForeignKeyPropertyName #> = new SelectList(db.   <#= property.EntitySetName #>, "<#= property.PrimaryKey #>", "<#= property.DisplayPropertyName #>", <#= modelVariable #>.<#= property.ForeignKeyPropertyName #>);
<# } #>
        return View("Create", <#= modelVariable #>);
    }

    //
    // GET: <#= routePrefix #>Delete/5

    public ActionResult Delete(<#= primaryKey.ShortTypeName #> id)
    {
<# if(isObjectContext) { #>
        <#= modelName #> <#= modelVariable #> = db.<#= entitySetName   #>.Single(<#= lambdaVar #> => <#= lambdaVar #>.<#= primaryKey.Name #> == id);
        db.<#= entitySetName #>.DeleteObject(<#= modelVariable #>);
<# } else { #>
        <#= modelName #> <#= modelVariable #> = db.<#= entitySetName #>.Find(id);
        db.<#= entitySetName #>.Remove(<#= modelVariable #>);
    <# } #>
            db.SaveChanges();
            return RedirectToAction("Index");
        }
            protected override void Dispose(bool disposing)
            {
               db.Dispose();
               base.Dispose(disposing);
            }
        }
    }

此代码是在Task1 ASP.NET MVC应用程序中的代码模板文件下自动生成的,但是每当我执行我的项目时,都会在此内​​容的第1行和第1行收到上述错误,请提供解决方案以解决此错误。

您可以仅使用以下代码段重现该问题。

<#@ template language="C#" HostSpecific="True" #>
<#
var Model = (MvcTextTemplateHost)Host;
#>

无法解析MvcTextTemplateHost类型,这会导致您看到错误。 Google有很多具有潜在解决方案的结果 ,其中大多数涉及确保您的项目有效引用了一个或另一个版本的Microsoft.VisualStudio.Web.Mvc.3.01.dll。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM