Javascript ASP.NET MVC 4如何更新模型和重新渲染水平视图

Javascript ASP.NET MVC 4如何更新模型和重新渲染水平视图,javascript,c#,jquery,ajax,asp.net-mvc,Javascript,C#,Jquery,Ajax,Asp.net Mvc,我希望能够单击按钮并将对象添加到模型中的列表中。它应该在每次单击按钮时添加一个新对象。我还有一个局部视图,该视图根据此列表中的对象数量进行渲染,发生这种情况时也需要更新。我知道我需要使用ajax,但我对它不是很熟悉 这是控制器: public ActionResult NewScheduleRequest() { var srm = new NewScheduleRequestModel(); srm.Request = new ResourceReque

我希望能够单击按钮并将对象添加到模型中的列表中。它应该在每次单击按钮时添加一个新对象。我还有一个局部视图,该视图根据此列表中的对象数量进行渲染,发生这种情况时也需要更新。我知道我需要使用ajax,但我对它不是很熟悉

这是控制器:

public ActionResult NewScheduleRequest()
    {
        var srm = new NewScheduleRequestModel();
        srm.Request = new ResourceRequest();
        srm.Request.ResourceRequestScheds.Add(new ResourceRequestSched(){StartDateRequested = DateTime.Today, EndDateRequested = DateTime.Today.AddDays(7)});
        return PartialView("NewScheduleRequestView", srm);
    }
以及有关的html:

<div id="timeFrames">
        @Html.Partial("_TimeframePartial", Model)
    </div>
    <div>
        <div class="form-group">
            <div>
                <input type="submit" value="Save" class="btn btn-default" />
                <input type="button" value="Add Timeframe" class="btn btn-default" id="btnAddTimeframe" />
            </div>
        </div>
    </div>

我的做法是否正确,还是需要重新思考?如果我在正确的轨道上,如果有人能帮我弄清楚我需要从这里做什么就好了。

你的"时间框架部分内容是什么?添加了你可以使用的部分视图内容
$。get('@Url.Action(“NewScheduleRequest”,“YourControllerName”)、function(data){$('timeFrames')。append(data);}
。但是,如果您添加了多个项,那么您将永远无法回发并绑定到集合(控件将无法使用索引器正确命名),因此这可能有点毫无意义。
@model Application.Models.NewScheduleRequestModel

@for (var i = 0; i < Model.Request.ResourceRequestScheds.Count; i++)
{

<div class="form-group">
    <label class="col-md-2 control-label" for="startDialog">Start</label>
    <div class="col-md-4">
        @Html.EditorFor(m => m.Request.ResourceRequestScheds[i].StartDateRequested, "dateTextBox")
    </div>
    <label class="col-md-2 control-label" for="endDialog">End</label>
    <div class="col-md-4">
        @Html.EditorFor(m => m.Request.ResourceRequestScheds[i].EndDateRequested, "dateTextBox")
    </div>
</div>
<div class="form-group row">
    <div class="col-md-2"></div>
    <div class="col-md-2">
        <label class="col-md-12 control-label">Mon</label>
        <div class="col-md-12">
            @Html.DropDownListFor(m => m.Request.ResourceRequestScheds[i].MonHoursRequested, Model.Hours, new { @class = "form-control" })
        </div>
    </div>
    <div class="col-md-2">
        <label class="col-md-12 control-label">Tues</label>
        <div class="col-md-12">
            @Html.DropDownListFor(m => m.Request.ResourceRequestScheds[i].TuesHoursRequested, Model.Hours, new { @class = "form-control" })
        </div>
    </div>
    <div class="col-md-2">
        <label class="col-md-12 control-label">Wed</label>
        <div class="col-md-12">
            @Html.DropDownListFor(m => m.Request.ResourceRequestScheds[i].WedHoursRequested, Model.Hours, new { @class = "form-control" })
        </div>
    </div>
    <div class="col-md-2">
        <label class="col-md-12 control-label">Thurs</label>
        <div class="col-md-12">
            @Html.DropDownListFor(m => m.Request.ResourceRequestScheds[i].ThursHoursRequested, Model.Hours, new { @class = "form-control" })
        </div>
    </div>
    <div class="col-md-2">
        <label class="col-md-12 control-label">Fri</label>
        <div class="col-md-12">
            @Html.DropDownListFor(m => m.Request.ResourceRequestScheds[i].FriHoursRequested, Model.Hours, new { @class = "form-control" })
        </div>
    </div>
</div>
<hr />

}
    $(document).ready(function () {
        $("#btnAddTimeframe").click(function () {
            $.ajax({
                type: 'POST',
            });
        });
    });