相关疑难解决方法(0)

如何在ASP.NET MVC中使用多个表单元素

所以我是ASP.NET MVC的新手,我想创建一个带有文本框的视图,用于集合中的每个项目.我该怎么做,以及如何在POST回来时捕获信息?我已经使用表单和表单元素为模型构建静态表单,但从不基于可变大小的集合动态生成表单元素.

我想在mvc 3中做这样的事情:

@foreach (Guest guest in Model.Guests)
{
    <div>
        First Name:<br />
        @Html.TextBoxFor(???) @* I can't do x => x.FirstName here because
                                 the model is of custom type Invite, and the
                                 lambda wants to expose properties for that
                                 type, and not the Guest in the foreach loop. *@
    </div>
}
Run Code Online (Sandbox Code Playgroud)

如何为每位客人提供文本框?我如何在它回发的动作方法中捕获它们?

谢谢你的帮助.

c# asp.net asp.net-mvc razor asp.net-mvc-3

11
推荐指数
2
解决办法
7526
查看次数

提交后 IEnumerable 属性为空

我是 MVC 的新手,在理解这一点时遇到了一些困难。

为简单起见,我有一个“Person”对象,该对象有一个名为“EmailaddressList”的 IEnumerable 属性。

我已经通过 Visual Studio 2012 生成了一个编辑页面。主要对象属性是在编辑页面上生成的,其中包含 Name 和 LastName 等文本框。

但是,在我看来,IEnumerable 子对象列表中的电子邮件地址列表不是自动生成的。没关系,我已经使用每种类型的电子邮件地址的选项卡手工编写了该代码。

到现在为止还挺好。

问题: 当我在 HTTP-Post 方法中收到模型(person 对象)时,EmailAddressList 为空。为什么会这样,我把它发送到视图时它不为空。列出电子邮件地址的选项卡在局部视图中。任何人都可以给我一些提示,我在这里缺少什么吗?*

查看代码

<div id="tabs">
<ul>
    @foreach (var item in Model.EmailAddressList)
    {
        <li><a href="#@item.AddressType">@Html.Label(item.AddressType)</a></li>
    }
</ul>
@foreach (var item in Model.EmailAddressList)
{
    <div id="@item.AddressType">
        <p>
            @Html.TextBoxFor(s => item.EmailAddress, new { @class = "input-xxlarge" })
        </p>
    </div>
}
</div>
Run Code Online (Sandbox Code Playgroud)

控制器(接收方法) 这里 person.EmailAddressList 为空

    [HttpPost]
    public ActionResult Create(Person person)
    {
        if (ModelState.IsValid) 
        {
            personRepository.InsertOrUpdate(person);
            personRepository.Save(); 
            return RedirectToAction("Index");
        } 
        else 
        { …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc entity-framework razor asp.net-mvc-4

4
推荐指数
1
解决办法
2761
查看次数