MVC3 でアプリケーションを構築しており、編集可能なデータ テーブルが必要です。私たちが求めているのは次のようなものです(少し簡略化されています):
<table class="project-items data-grid">
foreach (var item in Model.Items) {
using (Html.BeginForm("SaveItem", "Project", FormMethod.Post)) {
<tr>
<td>@Html.TextBox("Title", item.Title) @Html.Hidden("ProjectID", proj.ProjectID) @Html.Hidden("ItemID", item.ItemID)</td>
<td>@Html.DropDownList("State", item.State.ToSelectList(), "")</td>
<td>@Html.DropDownList("QuoteID", Model.Quotes.ToSelectList(item.QuoteID), "")</td>
<td>@Html.TextBox("EstimatedCost", item.EstimatedCost, new { @class = "costfield" })</td>
<td>@Html.TextBox("VendorEstimatedCost", item.VendorEstimatedCost, new { @class = "costfield" })</td>
<td>@Html.TextBox("VendorQuotedCost", item.VendorQuotedCost, new { @class = "costfield" })</td>
<td><input type="submit" value="Save" name="Save"/></td>
</tr>
}
}
</table>
もちろん、 a を a の<form>
中に直接置くの<table>
は有効な HTML ではありません。場合によってはうまくいくように見えますが、ブラウザやモデル バインダーを完全に狂わせてしまう場合もあります。
未定義の動作に依存しないようにするための最も安全でクリーンな方法は何ですか? AJAX の有無にかかわらず、フォームに適したものが欲しいです。<div>
私はとトリックを使って遊んでいましdisplay: table-cell
たが、それは の使用を妨げcolspan
ます。これも行う必要があります。