MVC 3-将多个对象添加到实体

问题描述

| 我有这样的课程:
public class member
{
 public string name {get;set;}
 public IList<Note> notes {get;set;}
}

public class note
{
 public string text {get;set;}
 public datetime created {get;set;}
}
我想要一个插入成员类的页面-很好。我的问题在于如何在同一页面上向成员添加多个注释? 最好的方法是什么? (也许是一些ajax解决方案来显示note类的子表单) 有人能指出一些相关示例学习材料的正确方向吗? 提前致谢。     

解决方法

        我将创建一个Ajax表单,该表单将发布到控制器上名为
AddNote(AddNoteViewModel viewModel)
的方法中。 AddNoteViewModel将包含创建新笔记所需的所有信息。 AddNote操作方法将添加新注释SaveChanges并返回给定成员的注释列表。您可以对从AddNote返回的内容使用部分视图。 在Ajax表单上,应将
UpdateTargetId
设置为要更新的
<div>
的ID,并带有最新的音符列表。 另一个选择可能是使用JQuery。 这是一个很好的示例:将Ajax.BeginForm与ASP.NET MVC 3 Razor一起使用 更新:我已经改编了Darin Dimitrov的示例(来自链接)以适合您的情况。这是我的头上的事,所以不会很完美,但这应该为您提供一个不错的起点 模型:
public class AddNoteViewModel
{
    [Required]
    public int MemberId { get; set; }
    [Required]
    public string Text { get; set; }
}
控制器:
    [HttpPost]
    public ActionResult AddNote(AddNoteViewModel model)
    {
        var member = //Get member from db using model.MemberId
        member.Notes.Add(new Note{Text = model.Text,Created = DateTime.Now});
        //SaveChanges();

        var notes = //Get notes for member

        return View(notes);
    }
视图:
@model AppName.Models.AddNoteViewModel

<script src=\"@Url.Content(\"~/Scripts/jquery.unobtrusive-ajax.js\")\" type=\"text/javascript\"></script>
<script src=\"@Url.Content(\"~/Scripts/jquery.validate.js\")\" type=\"text/javascript\"></script>
<script src=\"@Url.Content(\"~/Scripts/jquery.validate.unobtrusive.js\")\" type=\"text/javascript\"></script>

<div id=\"result\"></div>

@using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = \"result\" }))
{
    @Html.HiddenFor(x => x.MemberId)
    @Html.EditorFor(x => x.Text)
    @Html.ValidationMessageFor(x => x.Text)
    <input type=\"submit\" value=\"OK\" />
}
使用JQuery: 视图:
@model AppName.Models.AddNoteViewModel

<script src=\"@Url.Content(\"~/Scripts/jquery.validate.js\")\" type=\"text/javascript\"></script>
<script src=\"@Url.Content(\"~/Scripts/jquery.validate.unobtrusive.js\")\" type=\"text/javascript\"></script>
<script src=\"@Url.Content(\"~/Scripts/index.js\")\" type=\"text/javascript\"></script>

<div id=\"result\"></div>

@using (Html.BeginForm())
{
    @Html.HiddenFor(x => x.MemberId)
    @Html.EditorFor(x => x.Text)
    @Html.ValidationMessageFor(x => x.Text)
    <input type=\"submit\" value=\"OK\" />
}
index.js:
$(function () {
    $(\'form\').submit(function () {
        if ($(this).valid()) {
            $.ajax({
                url: this.action,type: this.method,success: function (result) {
                    $(\'#result\').html(result);
                }
            });
        }
        return false;
    });
});
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...