Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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# id为user.id时显示表中的所有行_C#_Asp.net Mvc 5 - Fatal编程技术网

C# id为user.id时显示表中的所有行

C# id为user.id时显示表中的所有行,c#,asp.net-mvc-5,C#,Asp.net Mvc 5,那么, 我是MVC5新手,我有两个问题,非常感谢您的帮助。 第一项是: 有两个模型,一个用于voteadmin设置选举日期和选举id 一个是给我命名为votingmodel的员工的, 现在我们已经接受了员工的选举数据,我想在election.id等于整数时检索所有数据,例如55。 我已经为votingmodel electionDetails分配了所有数据,如选举id候选人姓名、员工姓名、资产和其他列 现在,我想从包含electionID55的所有行的表中检索候选名称、日期、ReasonOfRe

那么, 我是MVC5新手,我有两个问题,非常感谢您的帮助。 第一项是: 有两个模型,一个用于voteadmin设置选举日期和选举id 一个是给我命名为votingmodel的员工的, 现在我们已经接受了员工的选举数据,我想在election.id等于整数时检索所有数据,例如55。 我已经为votingmodel electionDetails分配了所有数据,如选举id候选人姓名、员工姓名、资产和其他列 现在,我想从包含electionID55的所有行的表中检索候选名称、日期、ReasonOfRelecting

这是模型votingmodel

    public virtual int EmployeeId { get; set; }
    public virtual int ElectionId { get; set; }
    public virtual string ElectionName { get; set; }
    public virtual DateTime EEnd { get; set; }
    public virtual string CandidateName { get; set; }
    public virtual int Estatus { get; set; }
    public string EPosition { get; set; }
    public virtual string EDepartment { get; set; }
    public virtual string EDescription { get; set; }
当electionid=55和 看看有多少评论,我尝试了很多方法,但都没有得到

在控制器模型中,我有

        public ActionResult Index() 
        {
            return View();
        }

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Index(votingModel chk)
        {
            var id = chk.ElectionId;
            string ids = Convert.ToString(id);

            if (db.votingModels.Find(id) == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            //votingModel votingModel = db.votingModels.Find(id);
            if (id == null)
            {
                return HttpNotFound();
            }
            //var result = db.votingModels.Include("ElectionName").Where(p => p.ElectionId)
            //db.votingModels = db.votingModels.Contains(id)

            //model.Customers = db.Customers.OrderBy(
            //           m => m.CustomerID).Take(5).ToList();

            var query = from a in db.votingModel
                        where SqlFunctions.StringConvert((double)a.ElectionId).Contains(id)
                        select a;
            var item = query.FirstOrDefault();
            if (item != null)
            {
                return View(item);
            }
            else
            {
                return View("NotFound");  //Let's show a view about item not found
            }
            return View(votingModel);
        }
在视图模型中,我有以下代码

    @model election.Models.votingModel

    @{
        ViewBag.Title = "index";
    }

    @using (Html.BeginForm())
    {
        @Html.AntiForgeryToken()
        @*<p>
            @Html.ActionLink("Create New", "Create")
        </p>*@
        @Html.Label("election ID", htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.TextBoxFor(model => model.ElectionId, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.ElectionId, "", new { @class = "text-danger" })
        </div>
        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="submit" class="btn btn-default" />
            </div>
        </div>
    <dl class="dl-horizontal">
        <dt>
            @Html.DisplayNameFor(model => model.ElectionId)
        </dt>

    <dd>
        @Html.DisplayFor(model => model.ElectionId)
    </dd>

    <dt>
        @Html.DisplayNameFor(model => model.ElectionName)
    </dt>

    <dd>
        @Html.DisplayFor(model => model.ElectionName)
    </dd>

    <dt>
        @Html.DisplayNameFor(model => model.EStart)
    </dt>

    <dd>
        @Html.DisplayFor(model => model.EStart)
    </dd>

    <dt>
        @Html.DisplayNameFor(model => model.Estatus)
    </dt>

    <dd>
        @Html.DisplayFor(model => model.Estatus)
    </dd>

    <dt>
        @Html.DisplayNameFor(model => model.EPosition)
    </dt>

    <dd>
        @Html.DisplayFor(model => model.EPosition)
    </dd>

    <dt>
        @Html.DisplayNameFor(model => model.EDepartment)
    </dt>

    <dd>
        @Html.DisplayFor(model => model.EDepartment)
    </dd>

    <dt>
        @Html.DisplayNameFor(model => model.EDescription)
    </dt>

    <dd>
        @Html.DisplayFor(model => model.EDescription)
    </dd>

</dl>
}
@model election.Models.votingModel
@{
ViewBag.Title=“index”;
}
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken()
@*
@ActionLink(“新建”、“创建”)

*@ @Label(“选举ID”,htmlAttributes:new{@class=“control Label col-md-2”}) @TextBoxFor(model=>model.ElectionId,new{htmlAttributes=new{@class=“form control”}}) @Html.ValidationMessageFor(model=>model.ElectionId,“,new{@class=“text danger”}) @DisplayNameFor(model=>model.ElectionId) @DisplayFor(model=>model.ElectionId) @DisplayNameFor(model=>model.ElectionName) @DisplayFor(model=>model.ElectionName) @DisplayNameFor(model=>model.EStart) @DisplayFor(model=>model.EStart) @DisplayNameFor(model=>model.Estatus) @DisplayFor(model=>model.Estatus) @DisplayNameFor(model=>model.EPosition) @DisplayFor(model=>model.EPosition) @DisplayNameFor(model=>model.EDepartment) @DisplayFor(model=>model.EDepartment) @DisplayNameFor(model=>model.EDescription) @DisplayFor(model=>model.EDescription) }
第二个问题是我是否要检查三个条件

我想检查员工是否已经投票
如果用户输入的electionid存在于数据库中,且employeedid存在于同一行中,且estatus存在且=2表示他已投票,我如何设置该条件。
谢谢大家查找
方法使用其主键查找实体。由于
VotingModel
中的
ElectionId
是外键,因此必须使用
Where
Single
First
子句进行搜索

以下代码假定votingModels表中正好有一行具有给定的
ElectionId
。如果有多个匹配行,则必须更改此逻辑以使用
Where
而不是
单个
,并且您的视图必须采用
@model election.Models.votingModel[]

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Index(votingModel chk) {

    // chk.ElectionId can never be null because this property is not nullable in VotingModel 
    long id = chk.ElectionId; 

    // assuming there is only a single entry with this ElectionId in the DB
    votingModel existing = db.votingModels.SingleOrDefault(v => v.ElectionId == id); 

    // SingleOrDefault returns null if no entry matches the condition
    if (existing == null) {
        return View("NotFound");
    }

    return View(existing);
}

您不能在同一视图中同时接受输入和从数据库检索,您可以对从用户获取选择id的视图执行的操作将其传递给控制器如果条件随后显示另一个视图,请确保使用参数发送用户输入并执行验证
希望回答您的问题

ElectionId
VotingModel
的主键吗?不,不是键谢谢您的回答,但是我在使用where语句VotingModel existing=db.votingModels.where(v=>v.ElectionId==id)时出错;我累了,想加上Tolist();但我没有完成此操作,错误是“严重性代码描述项目抑制状态文件行错误CS0266无法将类型“System.Linq.IQueryable”隐式转换为“election.Models.votingModel”。存在显式转换(是否缺少强制转换?)我使用列表和Ilist选择p;是,
其中
返回一个
IEnumerable
,而
首先
单个
返回一个
T
的实例。因此,行应该是
IEnumerable existing=db.votingModels.Where(v=>v.ElectionId==id)
或只写
var
而不是
IEnumerable
。谢谢Georg,最后id下的红色消失了,但视图模型中出现了另一个问题,如果你得到了wat,我需要让用户输入SelectionID,并且应该显示所有具有该id的行,是否可以使用单视图执行此操作,因为现在我在视图模型中遇到此错误,“CS1061:“votingModel[]”不包含“ElectionId”的定义,并且找不到接受“votingModel[]”类型的第一个参数的扩展方法“ElectionId”(是否缺少using指令或程序集引用?),我尝试将视图模型更改为@model IEnumerable,但出现了相同的错误“S1061:“IEnumerable”不包含“ElectionId”的定义,并且找不到接受类型为“IEnumerable”的第一个参数的扩展方法“ElectionId”(是否缺少using指令或程序集引用?)如果将
@model
定义为cshtml文件中的集合,则必须使用
for
循环遍历各个条目。请参阅示例