MVC3 通过元素 ID 检索部分视图值.解决方案是什么

本文关键字:视图 解决方案 是什么 检索部 元素 ID MVC3 | 更新日期: 2023-09-27 18:31:25

很抱歉打扰,我对 MVC3 相当陌生,我一直在寻找 3 天但没有解决方案。

问题看起来像这样。我有一个视图,其中有另一个使用 @html.Partial 的部分视图。

在部分视图中,我有一个双选框,它允许我将用户从一侧移动到另一侧。

我的问题是,当我发布我的

主表单时,我怎样才能也发布我的部分表单中的信息,更准确地说是第二个选择框数据,因为我已经尝试了所有方法但没有成功。这里还有代码,非常感谢您的帮助。

主视图:(没有从头开始复制,因为我认为它没有帮助)

<div class="editor-field">
        @Html.TextBoxFor(v => v.Voyage.DateOfArrival, new { @class = "date", id = "arrival" })
    </div>
    <div class="editor-label">
        @Html.LabelFor(v => v.Voyage.MarginOfErrorTime, "Allowed margin of error")
    </div>
    <div class="editor-field">
        @Html.EditorFor(v => v.Voyage.MarginOfErrorTime)
    </div>
    <p>
        <input type="submit" value="Create" />
    </p>
    </div>
    <div class="partial-view">
        @Html.Partial("_UserAddingOptions", Model)
    </div>
</fieldset>
}
<div>
    @Html.ActionLink("Back to List", "Index")
</div>

这是部分视图:

<script language="javascript" type="text/javascript">
$(function () {
    $.configureBoxes();
});
</script>
@using (Html.BeginForm())
{
<table>
    <tr>
        <td>
            Filter:<br />
            <input type="text" id="box1Filter" style="width: 160px;" />
            <button type="button" id="box1Clear">
                X</button><br />
            <select id="box1View" multiple="multiple" style="height: 240px; width: 200px;">
                @foreach (var user in Model.Users)
                {
                    <option>@user.FirstName @user.LastName</option>
                }
            </select><br />
            <span id="box1Counter" class="countLabel"></span>
            <select id="box1Storage">
            </select>
        </td>
        <td style="width: 28px; vertical-align: middle;">
            <button id="to2" type="button">
                ></button>
            <button id="to1" type="button">
                <</button>
        </td>
        <td>
            Filter:<br />
            <input type="text" id="box2Filter" style="width: 160px;" />
            <button type="button" id="box2Clear">
                X</button><br />
            <select id="box2View" multiple="multiple" style="height: 240px; width: 200px;">
            </select><br />
            <span id="box2Counter" class="countLabel"></span>
            <select id="box2Storage">
            </select>
        </td>
    </tr>
</table>
}

只有一个用于主视图的控制器,当我提交主表单时,我有什么可行的解决方案将部分视图信息从 (id = box2View) 发布到控制器?

MVC3 通过元素 ID 检索部分视图值.解决方案是什么

可以看到两个错误,还有一个建议:

1)你在那里有一个嵌套的表单 - 除非有其他视图,部分用于提交内容本身(可能不是,因为你正在使用BeginForm它总是回发到当前的控制器/视图)。 删除分部视图上的表单标记。

2) ...这是主要问题 - 您对部分的输入都没有name。 如果他们没有name,那么他们不会提交任何内容:

<select id="box2View" name="box2View" ...

3)我知道你是一个自认的初学者 - 所以你会从我建议你查看一些关于模型绑定的演练指南中受益。 手动写出所有表单元素,手动吐出option标签等,是不必要的。 简单的 MSDN 主题 MVC Asp.Net 中的模型和验证值得一看 - 特别是请注意那里的视图代码 - 一切都是从模型中完成的,没有显式<input type="textbox"等。

窗体外部有 submot 按钮,可以将其移动到代码块内部分视图中的窗体中,@Html.BeginForm(),也可以在单击窗体时使用 javascript 发布窗体。

<input type="button" onclick="$('#someForm').submit();" /> //someForm is id of the form.