【发布时间】:2014-12-01 17:34:32
【问题描述】:
我有一个带有 ActionResult 的控制器,它从 HttpPost 的视图中获取三个数组。 数组是 Id(tableId) 顶部的位置 (positionY) 和左侧的位置 (positionX)。 当您点击保存时,ActionResult 需要更新数据库中相应 id 的所有职位。
这是我的控制器:
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' 到 'BonTempsMVC.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>
和 tafel 模型:
namespace BonTempsMVC
{
public class Tafel
{
public int id { get; set; }
public string tafelNaam { get; set; }
public bool beschikbaar { get; set; }
public float positionY { get; set; }
public float positionX { get; set; }
}
}
【问题讨论】:
-
你能发布你对 Tafel 对象的定义吗?
-
我用我的 tafel 模型编辑了我的问题。
标签: c# arrays asp.net-mvc linq