c# - 使用 Html.BeginForm 将内容放在结束 </form> 标记之后

标签 c# asp.net-mvc

所以我有一个部分 View ,在其中创建一个表单

@using(Html.BeginForm("UpdateTimesheet", "Entry", FormMethod.Post, new { id = @i }))
{
    <td>@Html.DropDownListFor(x => x.TimeEntry.LocationId, Model.LocationList, "Please select a location")</td>
    <td>@Html.DropDownListFor(x => x.TimeEntry.Equipment.Code, Model.EquipmentList, "Please select equipment")</td>
    <td>@Html.DropDownListFor(x => x.TimeEntry.Staff.PayrollId, Model.StaffList, "Please select staff")</td>
    <td>@Html.DropDownListFor(x => x.TimeEntry.Task.Name, Model.TaskList, "Please select a task")</td>
    <td>@Html.EditorFor(x => x.TimeEntry.LengthOfTime)</td>
    <td>@Html.DisplayFor(x => x.TimeEntry.EventDateTime)</td>
    <td>@Html.DisplayFor(x => x.TimeEntry.ReceivedDateTime)</td>
    <td>
        @Html.ActionLink("Cancel", "DisplayTimesheet", new { id = Model.TimeEntry.Id }, new { @class = "edit" })
        | 
        <a style="cursor: pointer" onclick="submitEdit(@i);">Save</a>
    </td>
}

但是正在呈现的 HTML 的表单立即关闭,后面是大括号内的 html。例如:

<form action="/Entry/UpdateTimesheet" id="edit1" method="post"></form>
<td>
    <select data-val="true" data-val-number="The field LocationId must be a number." id="TimeEntry_LocationId" name="TimeEntry.LocationId">
        <option value="">Please select a location</option>
        <option value="1">Location 1</option>
        <option selected="selected" value="3">Location 1</option>
    </select>
</td>

等等。该部分 View 正在插入表行 ()

有什么想法为什么会发生这种情况以及如何解决它吗?

最佳答案

这可能与您尝试将表单放在 td 标记上有关,这基本上将表单放在 tr 中;这是不正确的。您应该尝试将表单放在 td 内部而不是外部。

关于c# - 使用 Html.BeginForm 将内容放在结束 </form> 标记之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16431171/

相关文章:

c# - 使用 CanUserAddRows 为 DataGrid 的新行设置样式

asp.net-mvc - 带有接口(interface)的 ASP.NET MVC UpdateModel

c# - 预定义类型 'System.Threading.Tasks.Task' 在全局别名的多个程序集中定义

asp.net-mvc - 如何在 ASP.NET MVC 中将数据传递给 JsonResult?

asp.net-mvc - 向 Web 应用程序添加 IVR 和 PBX 功能

c# - 不区分大小写的字典未按预期工作

c# - 编译此程序集时为什么会出现以下错误?

c# - Asp.net MVC 中的日期时间选择器中未设置日期

c# - 为什么我必须输入两次我的回复才能注册?

asp.net-mvc - IApplicationBuilder.New() 的目的是什么