【问题标题】:Accessing Partial view element Ids and Names in Master访问 Master 中的部分视图元素 ID 和名称
【发布时间】:2012-07-16 21:45:15
【问题描述】:

我有几个以列表格式显示输出的强类型部分视图。这是其中一个部分:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Student.Models.vwStudent>>" %>

<table>
        <tr>
            <th>
                Student ID
            </th>           
            <th>
                Past Due Amount
            </th>
            <th>
                Past Due Days
            </th>            
        </tr>

        <% if (Model != null)
           foreach (var item in Model) { %>

        <tr>
            <td>
                <%=Html.TextBox("StudentID",item.StudentID) %>
            </td>

            <td>
                <%=Html.TextBox("PastDueAmount",item.PastDueAmount) %>
            </td>
            <td>
                <%=Html.TextBox("PastDueDays",item.PastDueDays) %>
            </td>            
        </tr>

    <% } %>

    </table>

这是我在 master 中访问以上部分的方式:

<% using(Html.BeginForm("SaveStudentInvoice", "StudentInvoice")) %>
<% { %>
<% Html.RenderPartial("DisplayStudentInvoiceList"); %>
<input type="button" id="Submit" name="Submit" value="Submit" />
<% } %>

现在,我在 master 中有一个“保存”按钮,当我单击该按钮时,应将学生 ID、逾期金额和逾期天数保存在表格中。如何访问主视图中的部分视图元素 ID 和名称来进行插入?

提前致谢。

【问题讨论】:

  • 我认为您应该在部分中包含保存按钮,但您可以使用 JavaScript。尚未检查,但它应该类似于document.forms[0].submit();,除非您有更多表格。比改变索引。

标签: c# asp.net-mvc linq-to-sql partial-views


【解决方案1】:

在 ASP.NET MVC 视图/MasterPages 中不执行插入操作。它们显示数据。它是执行插入的控制器操作。您显示的部分视图示例仅将学生数据详细信息显示为标签。如果您想将它们发送回服务器(用于插入),您应该使用 HTML &lt;form&gt; (&lt;% using (Html.BeginForm("someAction", "someController")) { %&gt;) 和输入字段(Html.EditorFor 助手)而不是简单的标签。

【讨论】:

  • 是的,我明白这一点。我有控制器动作和 JS(Ajax)。我不明白的是,如何从部分访问/传递 StudentId 和其他详细信息到控制器操作? partials 上的这些字段没有 Id,而且,partials 是强类型的,输出的行数也不固定。
  • partial 不需要访问其父视图信息。如果有,说明你在分离视图和局部视图时做错了。
  • 它的父试图访问部分,从部分保存信息的按钮在主(父)视图中。我应该如何处理?
  • 您应该将部分调用包装在一个表单中,然后在单击提交按钮时调用相应的控制器操作。此操作将接收输入字段值。
  • 谢谢!这似乎工作。有人认为我无法解决它,我可以从部分插入第一条记录,但不能插入 2nd 、 3rd 等。我应该循环通过控制器操作(插入数据)中的部分视图输出并一一保存吗?还是有更好的解决方案?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-03
  • 2013-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-25
  • 2015-12-23
相关资源
最近更新 更多