C# 数组中每个元素的Linq查询
我有一个带有ActionResult的控制器,它从HttpPost的视图中获取三个数组。 数组是Id(tableId)、从顶部开始的位置(positionY)和从左侧开始的位置(positionX)。 单击“保存”时,ActionResult需要更新数据库中相应id中的所有位置 这是我的控制器:C# 数组中每个元素的Linq查询,c#,arrays,asp.net-mvc,linq,C#,Arrays,Asp.net Mvc,Linq,我有一个带有ActionResult的控制器,它从HttpPost的视图中获取三个数组。 数组是Id(tableId)、从顶部开始的位置(positionY)和从左侧开始的位置(positionX)。 单击“保存”时,ActionResult需要更新数据库中相应id中的所有位置 这是我的控制器: private BonTempsDbContext db = new BonTempsDbContext(); [HttpPost] public ActionResult Index(int[] t
private BonTempsDbContext db = new BonTempsDbContext();
[HttpPost]
public ActionResult Index(int[] tableId, int[] tablePosX, int[] tablePosY)
{
int i = 0;
foreach (var id in tableId)
{
int number = tableId[i];
Tafel tafel = db.Tafel
.Where(x => x.id == number)
.ToList();
db.Entry(tafel).State = EntityState.Modified;
i++;
}
return View(db.Tafel.ToList());
}
我得到一个错误:
无法隐式转换类型
“System.Collections.Generic.List”到
“邦坦普斯姆vc.Tafel”
如果你能从中得到有用的东西,这就是我的观点
@model IEnumerable<BonTempsMVC.Tafel>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Index</h2>
<div class="VoegToeBtn">
<a href="/tafel/create">
<span class="btn btn-default">
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Maak nieuw menu aan
</span>
</a>
</div>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div id="tablewrapper">
@foreach (var item in Model)
{
var positionXId = "posX" + item.id;
var positionYId = "posY" + item.id;
<div class="draggable ui-widget-content" id="@Html.DisplayFor(ModelItem => item.id)">
<input type="text" hidden name="tableId" value="@Html.DisplayFor(ModelItem => item.id)" />
<input type="text" hidden name="tablePosX" id="@positionXId" value="" />
<input type="text" hidden name="tablePosY" id="@positionXId" value="" />
<p>@Html.DisplayFor(ModelItem => item.tafelNaam)</p>
</div>
}
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
}
<script>
$(".draggable").draggable({
snap: ".draggable",
snapMode: "outer",
stop: function (event, ui) {
var finalOffset = $(this).offset();
var finalxPos = finalOffset.left;
var finalyPos = finalOffset.top;
var itemId = $(this).attr('id');
var posXid = "posX" + itemId;
var posYid = "posY" + itemId;
$('input:text[id="' + posXid + '"]').attr("value", finalxPos);
$('input:text[id="' + posYid + '"]').attr("value", finalyPos);
},
});
</script>
试试这个:-
List<Tafel> tafel = db.Tafel
.Where(x => x.id == number)
.ToList();
根据@DavidG的建议,您也可以这样做:-
Tafel tafel = db.Tafel.FirstOrDefault(x => x.id == number);
Tafel tafel = db.Tafel.Find(number);
你能发布你对Tafel对象的定义吗?我用我的Tafel模型编辑了我的问题。或者,
Tafel-Tafel=db.Tafel.Find(number)代码>也可以。谢谢!真的很有帮助而且很快!现在需要弄清楚如何进行查询以更新每个表中的位置。
Tafel tafel = db.Tafel.Find(number);