"A namespace cannot directly contain members such as fields or methods" 文件:具有上下文的控制器
"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 results 具有潜在的解决方案,其中大部分涉及确保您的项目具有对一个或另一个版本的 Microsoft.VisualStudio.Web.Mvc.3.01.dll 的有效引用。
<#@ 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 results 具有潜在的解决方案,其中大部分涉及确保您的项目具有对一个或另一个版本的 Microsoft.VisualStudio.Web.Mvc.3.01.dll 的有效引用。