C# id为user.id时显示表中的所有行
那么, 我是MVC5新手,我有两个问题,非常感谢您的帮助。 第一项是: 有两个模型,一个用于voteadmin设置选举日期和选举id 一个是给我命名为votingmodel的员工的, 现在我们已经接受了员工的选举数据,我想在election.id等于整数时检索所有数据,例如55。 我已经为votingmodel electionDetails分配了所有数据,如选举id候选人姓名、员工姓名、资产和其他列 现在,我想从包含electionID55的所有行的表中检索候选名称、日期、ReasonOfRelecting 这是模型votingmodelC# 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
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
循环遍历各个条目。请参阅示例