English 中文(简体)
2. 装在原样上的清单 2. 创举。 • 发现Im 错失
原标题:Model Binding to a List in asp.net mvc 2. Found example. Can t find where I m going wrong

我把我的工作建立在哲学Haack的文章上:http://haacked.com/archive/2008/10/23/model- binding-to-alist.aspx

我也在这里审视了斯克拉奥韦罗的一些职位,我似乎无法回答我的问题,尽管他们可能提出解决办法。 我猜测我需要更多的分界线。

I m 试图为一种复杂类型,即其中一种特性是另一种复杂类型清单的观念而工作。 我的目标如下:

        public class Data
        {
            public Data()
            {
                Assessments = new List<AssessmentItem>();
            }

            public String Associate { get; set; }
            public String Department { get; set; }
            public String JobTitle { get; set; }
            public int StartPeriod { get; set; }
            public int EndPeriod { get; set; }
            public List<AssessmentItem> Assessments { get; set; }

        }

        public class AssessmentItem
        {
            public long Index { get; set; }
            public String Heading { get; set; }
            public String Comments { get; set; }
        }   

我试图利用《国土报》的文章所介绍的“为+控制模板”解决方案。 我的指数认为(注:它严格针对单一物体,而不是清单)。

这里是接受该职位的控制器方法(但我想这是初步意见的产生):

    [HttpPost]
    public ActionResult Index(Data data)
    {
        return View(data);
    }

你们可以看到,在现阶段,它没有任何作用。 它只是重新展示所公布的数据。

这里是共享/电子模版的编辑模板。

    (file name: AssessmentItem.ascx location: 
                Views/Shared/EditorTemplates)           
    <%@ Control Language="C#"
    Inherits="System.Web.Mvc.ViewUserControl<Project.Models.AssessmentItem>" %>
    <%@ Import Namespace="Project.Models" %>

    Assessment Item Heading: <%= Model.Heading %>
    <%= Html.HiddenFor(model => Model.Heading) %>
    <%= Html.HiddenFor(model => Model.Index) %>
    <%= Html.TextBoxFor(model => model.Comments) %>
    <%= Html.ValidationMessageFor(model => model.Comments) %>

我感到困惑的是,我不敢确定每个评估项目的指数。 Haack s article & Code includes several HtmlHelper extensions methods, which I ve also included in my own Code, but that don t resolution the issue.

这里,我的看法是呼号(用于使用Html)。 中间的投标,但我无法说明如何对《示范法》加以约束。 3. 评估清单部分:

         <% for (int i = 0; i < Model.Assessments.Count; i++) { %>
            Entering Loop
            <% Html.EditorFor(m => m.Assessments[i] ); %>
        <% } %>

我承认,我这里的知识差距很大。 我只是与ASP一道打破了表面。 NET MVC 1在尝试ASP之前。 NET MVC 2, 但改进似乎值得改进。

一个非常奇怪的事情是,我似乎无法使用“ &”;%: %> syntax。 在我做任何事情的时候,我收到了数份时间错误汇编。 我可以使用典型和斜体;%的配对器;以及 我在此 st忙,因此,任何意见都会受到赞赏。 该法典没有留下任何错误。 页面负荷也好像没有被扔掉。 这只是要通过Html产生控制。 页: 1 登录Loop文本印刷了两次,因此我知道我的名单上有评估意向。

感谢一切帮助。

最佳回答

无需<条码>。 你们需要的是:

<%= Html.EditorFor(m => m.Assessments) %>

这将自动称作<代码>AssessmentItem.ascx的编辑模板each <>/strong>项目,载于。 因此,仅仅确保控制员开始这样做,使之具有某种价值。 它将自动考虑为编辑模板中的投入编制正确的名称,以便使模型具有约束力。

<%:...... %> is an ASP. NET 4.0只是并相当于<%=Html.Encode(......) %>,但如果您使用的话。 NET 3.5 输电网向您提供。 通知中还有<条码>;,在<条码>后使用<条码>;%=......%>。

问题回答

暂无回答




相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

How to Add script codes before the </body> tag ASP.NET

Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...

Transaction handling with TransactionScope

I am implementing Transaction using TransactionScope with the help this MSDN article http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx I just want to confirm that is ...

System.Web.Mvc.Controller Initialize

i have the following base controller... public class BaseController : Controller { protected override void Initialize(System.Web.Routing.RequestContext requestContext) { if (...

Microsoft.Contracts namespace

For what it is necessary Microsoft.Contracts namespace in asp.net? I mean, in what cases I could write using Microsoft.Contracts;?

Separator line in ASP.NET

I d like to add a simple separator line in an aspx web form. Does anyone know how? It sounds easy enough, but still I can t manage to find how to do it.. 10x!