Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在编辑我的表单时,它抛出错误_C#_Html_Asp.net Mvc 3 - Fatal编程技术网

C# 在编辑我的表单时,它抛出错误

C# 在编辑我的表单时,它抛出错误,c#,html,asp.net-mvc-3,C#,Html,Asp.net Mvc 3,这可能是一个愚蠢的错误,但我花了很多时间来解决这个问题 我有一个名为users的现有表,并添加了新的列callapprove(bit)。 在我的表单编辑中,我试图提供复选框来批准用户的授权 以下是我的表格: <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<EmsAdmin.Models.User>" %> <%@ Import Namespace="EmsAdmin.Mode

这可能是一个愚蠢的错误,但我花了很多时间来解决这个问题

我有一个名为users的现有表,并添加了新的列callapprove(bit)。 在我的表单编辑中,我试图提供复选框来批准用户的授权

以下是我的表格:

<%@ Control Language="C#"    Inherits="System.Web.Mvc.ViewUserControl<EmsAdmin.Models.User>" %>
<%@ Import Namespace="EmsAdmin.Models" %>
 <script type="text/javascript">
//<![CDATA[
// Focus on the first input box for the site
$(document).ready(function () {
    $('#UserId').focus();
});

//]]>
</script>

< %= Html.ValidationSummary("Edit was unsuccessful. Please correct the errors and try
         again.") %>
<% using (Html.BeginForm())
 {%>

 <%= Html.AntiForgeryToken() %>

 <p>
<%= Html.LabelFor(e=>e.Id,"Id:") %>
<%: Model.Id %>

</p>
<p>

<%= Html.LabelFor(e=>e.PersonId,"Person:") %>
  <%= Html.DropDownListFor(e =>
  e.PersonId, (SelectList)ViewData["allPersons"], "Select
 a person", new { @style = "width: 255px;" })%>
 <%= Html.ValidationMessageFor(e=>e.Person,"") %>
 </p>

 <p>
<%= Html.LabelFor(e=>e.Email,"Email:") %>
<%= Html.TextBoxFor(e => e.Email, new { @style = "width:250px;" })%>
<%= Html.ValidationMessageFor(e=>e.Email,"") %>
 </p>

<%= Html.LabelFor(e=>e.Approve,"Aprrove User:") %>
<%= Html.CheckBoxFor(e=>e.Approve) %><span>&nbsp;Switch this on if you want to
    display whitespace in the widget rather than out of stock logos</span>
<%= Html.ValidationMessageFor(e=>e.Approve,"") %>

//
<%=Html.ValidationSummary(“编辑失败。请更正错误并重试
再一次。”)%>

e、 Id,“Id:”)%>

e、 PersonId,“Person:”)%> e、 PersonId,(选择列表)查看数据[“所有人”],“选择 一个人”,新的{@style=“width:255px;“})%%> e、 人,“”””>

e、 电子邮件,“电子邮件:”)%> e、 电子邮件,新的{@style=“width:250px;“})%> e、 电子邮件““”%>

e、 批准,“批准用户:”)%> e、 批准)%>如果需要,请打开此选项 在小部件中显示空白,而不是缺货的徽标 e、 批准““”%>

我得到以下错误:

Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InvalidOperationException: Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.

Source Error: 


Line 29: </p>
Line 30:     <%= Html.LabelFor(e=>e.Approve,"Aprrove User:") %>
Line 31:     <%= Html.CheckBoxFor(e=>(bool) e.Approve) %><span>&nbsp;Switch this on if you want to
Line 32:         display whitespace in the widget rather than out of stock logos</span>
Line 33:     <%= Html.ValidationMessageFor(e=>e.Approve,"") %>

Source File: d:\Dev2010\ems1\Project1\EmsAdmin\Views\ReportUserVerification\UserForm.ascx    Line: 31 

Stack Trace: 


[InvalidOperationException: Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.]
   System.Web.Mvc.ModelMetadata.FromLambdaExpression(Expression`1 expression, ViewDataDictionary`1 viewData) +513485
   System.Web.Mvc.Html.InputExtensions.CheckBoxFor(HtmlHelper`1 htmlHelper, Expression`1 expression, IDictionary`2 htmlAttributes) +71
   System.Web.Mvc.Html.InputExtensions.CheckBoxFor(HtmlHelper`1 htmlHelper, Expression`1 expression) +54
   ASP.views_reportuserverification_userform_ascx.__Render__control1(HtmlTextWriter __w, Control parameterContainer) in d:\Dev2010\ems1\Project1\EmsAdmin\Views\ReportUserVerification\UserForm.ascx:31
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +268
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.Control.Render(HtmlTextWriter writer) +10
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.Page.Render(HtmlTextWriter writer) +29
   System.Web.Mvc.ViewPage.Render(HtmlTextWriter writer) +41
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1386
模板只能用于字段访问、属性访问、一维数组索引或单参数自定义索引器表达式。
描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源。
异常详细信息:System.InvalidOperationException:模板只能用于字段访问、属性访问、一维数组索引或单参数自定义索引器表达式。
源错误:
第29行:

第30行:e.批准,“批准用户:”)%> 第31行:(bool)e.Approve)%>如果您想打开此选项 第32行:在小部件中显示空白,而不是缺货的徽标 第33行:e.批准“””> 源文件:d:\Dev2010\ems1\Project1\EmsAdmin\Views\ReportUserVerification\UserForm.ascx行:31 堆栈跟踪: [InvalidOperationException:模板只能用于字段访问、属性访问、一维数组索引或单参数自定义索引器表达式。] System.Web.Mvc.modelmetada.FromLambdaExpression(表达式'1 Expression,ViewDataDictionary'1 viewData)+513485 System.Web.Mvc.Html.InputExtensions.CheckBoxFor(HtmlHelper`1 HtmlHelper,Expression`1 Expression,IDictionary`2 htmlAttributes)+71 System.Web.Mvc.Html.InputExtensions.CheckBoxFor(HtmlHelper`1 HtmlHelper,Expression`1 Expression)+54 ASP.views\u reportuserverification\u userform\u ascx.\u\u Render\u control1(HtmlTextWriter\uw,控制参数容器)位于d:\Dev2010\ems1\Project1\EmsAdmin\views\reportuserverification\userform.ascx:31中 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter编写器,ICollection子级)+268 System.Web.UI.Control.RenderChildren(HtmlTextWriter)+8 System.Web.UI.Control.Render(HtmlTextWriter)+10 System.Web.UI.Control.RenderControlInternal(HtmlTextWriter编写器、ControlAdapter)+57 System.Web.UI.Control.RenderControl(HtmlTextWriter编写器、控制适配器)+100 System.Web.UI.Control.RenderControl(HtmlTextWriter)+25 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter编写器,ICollection子级)+128 System.Web.UI.Control.RenderChildren(HtmlTextWriter)+8 System.Web.UI.Page.Render(HtmlTextWriter)+29 System.Web.Mvc.ViewPage.Render(HtmlTextWriter)+41 System.Web.UI.Control.RenderControlInternal(HtmlTextWriter编写器、ControlAdapter)+57 System.Web.UI.Control.RenderControl(HtmlTextWriter编写器、控制适配器)+100 System.Web.UI.Control.RenderControl(HtmlTextWriter)+25 System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)+1386
我的用户类:

  using System;
  using System.Collections.Generic;
  using System.ComponentModel.DataAnnotations;

 namespace EmsAdmin.Models
  {
/// <summary>
/// Extends the class created by Linq, so that we can have more control over our linq objects.
/// </summary>
[MetadataType(typeof(UserValidation))]
public partial class User
{
    /// <summary>
    ///  A collection of the Interaction Records for this report
    /// </summary>
    public List<User> Users { get; set; }

    /// <summary>
    /// A collection for displaying brands for the user
    /// </summary>
    public List<Manufacturer> Manufacturers { get; set; }

    /// <summary>
    /// Override the to string so that we can use in the delete method to capture details of this record before it is deleted
    /// </summary>
    /// <returns></returns>
    public override string ToString()
    {
        return string.Format("User: Id = {0}, PersonId = {1}, Name = {2}, Email = {3}, Guid = {4}, CreatedAt = {5}, Salt = {6}, Avatar = {7}, Password = {8}, LastLoggedIn = {9}, LoggedInFrom = {10},Approve = {11}", Id, PersonId, Name, Email, Guid, CreatedAt, Salt, Avatar, Password, LastLoggedIn, LoggedInFrom,Approve);
    }
}

/// <summary>
/// User Validation
/// </summary>
public class UserValidation
{
    /// <summary>
    /// PersonId
    /// </summary>
    [Required(ErrorMessage = "PersonId is required")]
    [Range(1, int.MaxValue, ErrorMessage = "PersonId must be valid")]
    public int PersonId { get; set; }

    /// <summary>
    /// Name
    /// </summary>
    [Required(ErrorMessage = "Name is a required field")]
    [StringLength(128, ErrorMessage = "Name maximum length is 128", MinimumLength = 1)]
    public String Name { get; set; }

    /// <summary>
    /// Email
    /// </summary>
    [Required(ErrorMessage = "Email is a required field")]
    [StringLength(128, ErrorMessage = "Email maximum length is 128", MinimumLength = 1)]
    public String Email { get; set; }

    /// <summary>
    /// Guid
    /// </summary>
    [Required(ErrorMessage = "Guid is a required field")]
    [StringLength(32, ErrorMessage = "Guid maximum length is 32", MinimumLength = 1)]
    public String Guid { get; set; }

    /// <summary>
    /// CreatedAt
    /// </summary>
    [Required(ErrorMessage = "CreatedAt is a required field")]
    public DateTime CreatedAt { get; set; }

    /// <summary>
    /// Salt
    /// </summary>
    [StringLength(9, ErrorMessage = "Salt maximum length is 9")]
    public String Salt { get; set; }

    /// <summary>
    /// Avatar
    /// </summary>
    [StringLength(128, ErrorMessage = "Avatar maximum length is 128")]
    public String Avatar { get; set; }

    /// <summary>
    /// Password
    /// </summary>
    [Required(ErrorMessage = "Password is a required field")]
    [StringLength(512, ErrorMessage = "Password maximum length is 512", MinimumLength = 1)]
    public String Password { get; set; }

    /// <summary>
    /// LoggedInFrom
    /// </summary>
    [StringLength(25, ErrorMessage = "LoggedInFrom maximum length is 25")]
    public String LoggedInFrom { get; set; }

}
}
使用系统;
使用System.Collections.Generic;
使用System.ComponentModel.DataAnnotations;
名称空间EmsAdmin.Models
{
/// 
///扩展由Linq创建的类,以便我们可以对Linq对象进行更多的控制。
/// 
[元数据类型(typeof(UserValidation))]
公共部分类用户
{
/// 
///此报表的交互记录的集合
/// 
公共列表用户{get;set;}
/// 
///为用户展示品牌的集合
/// 
公共列表制造商{get;set;}
/// 
///重写to字符串,以便我们可以在删除之前在delete方法中捕获此记录的详细信息
/// 
/// 
公共重写字符串ToString()
{
返回string.Format(“用户:Id={0},PersonId={1},Name={2},Email={3},Guid={4},CreatedAt={5},Salt={6},Avatar={7},Password={8},LastLoggedIn={9},LoggedInFrom={10},Approve={11}”,Id,PersonId,PersonId,Name,Email,Guid,CreatedAt,Salt,Avatar,Password,lastloggedinfrom,Approve);
}
}
/// 
///用户验证
/// 
公共类用户验证
{
/// 
///拟人
/// 
[必需(ErrorMessage=“PersonId是必需的”)]
[范围(1,int.MaxValue,ErrorMessage=“PersonId必须有效”)]
公共int PersonId{get;set;}
/// 
///名字
/// 
[必需(ErrorMessage=“名称是必填字段”)]
[StringLength(128,ErrorMessage=“名称最大长度为128”,最小长度为1)]
公共字符串名称{get;set;}
/// 
///电子邮件
/// 
[必需(ErrorMessage=“电子邮件是必填字段”)]
[StringLength(128,ErrorMessage=“电子邮件最大长度为128”,最小长度为1)]
公共字符串电子邮件{get;set;}
/// 
///指南
/// 
[必需(ErrorMessage=“Guid是必填字段”)]
[StringLength(32,ErrorMessage=“Guid最大长度为32”,最小长度为1)]
公共字符串Guid{get;set;}
/// 
///创建数据
/// 
[必需(ErrorMessage=“CreatedAt是必填字段”)]
public DateTime CreatedAt{get;set;}
/// 
///盐
/// 
[StringLength(9,ErrorMessage=“Salt最大长度为9”)]
公共字符串Salt{get;set;}
///