Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax 使用Jquery收集数据,使用数据从控制器获取部分视图,并将传递的信息附加到页面末尾_Ajax_Asp.net Mvc_Jquery_Partial Views - Fatal编程技术网

Ajax 使用Jquery收集数据,使用数据从控制器获取部分视图,并将传递的信息附加到页面末尾

Ajax 使用Jquery收集数据,使用数据从控制器获取部分视图,并将传递的信息附加到页面末尾,ajax,asp.net-mvc,jquery,partial-views,Ajax,Asp.net Mvc,Jquery,Partial Views,当从下拉菜单中选择某个选项时,我试图将部分视图附加到“当前显示的页面”的末尾 这是我视图中的下拉列表: <div> @Html.DropDownListFor(x => x.DropDownInfo, Model.Info, "DefaultSelection") @Html.ValidationMessageFor(model => model.Courses) </div> 这是我的控制器中使用PartialView进行回

当从下拉菜单中选择某个选项时,我试图将部分视图附加到“当前显示的页面”的末尾

这是我视图中的下拉列表:

<div>
        @Html.DropDownListFor(x => x.DropDownInfo, Model.Info, "DefaultSelection")
        @Html.ValidationMessageFor(model => model.Courses)
</div>
这是我的控制器中使用PartialView进行回复的部分(我希望将下拉选择中的字符串传递到此控制器,最终用于填充PartialView表单中的字段):

局部视图(在重要的情况下):

@使用(Html.BeginForm()){
@Html.ValidationSummary(true)
课程模板
@LabelFor(model=>model.Title)
@EditorFor(model=>model.Title)
@Html.ValidationMessageFor(model=>model.Title)

}
如果我完全错误地处理这种情况,我愿意接受建议

我的目标是让用户从下拉菜单中选择一个“模板”,并让该模板的数据自动填充到下拉菜单下的表单中


我的Jquery非常粗糙-我使用它作为指南

您的视图中应该有一个div

<div id ="divToAppend">
</div>

但是,听起来是正确的-如果我做了这些更改,从下拉列表中选择一个选项仍然没有任何作用。我一定是遗漏了什么。你确定你收到了控制器的任何响应吗?你可以通过检查“data”变量是否为null来检查这一点。它一定没有正确刷新,它可以正常工作-真诚地感谢你。事实上,改变的是我使用的是Chrome而不是IE-这在IE 9中不起作用有什么原因吗?(在chrome中工作)我能想到的唯一原因是IE中没有启用Javascript,请检查一下
public PartialViewResult PreFillCourse(string selectedFromDropDown)
{
    ViewBag.selectedString = selectedFromDropDown;
    MyViewModel preFill = new MyViewModel
    {
        Title = selectedFromDropDown, // I am using this to pre-fill a field in a form
    };
    return PartialView("_PartialViewForm", preFill);
}
@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>CourseTemplates</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.Title)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Title)
            @Html.ValidationMessageFor(model => model.Title)
        </div>
        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
}
<div id ="divToAppend">
</div>
$(document).ready(function() {
    $("#DropDownInfo").change(function() {
        var strSelected = "";
        $("#DropDownInfo option:selected").each(function() {
            strSelected += $(this)[0].value;
        });
        var url = "/Controller/PreFillMethod/?MethodString=" + strSelected;

        $.post(url, function(data) {
             $('#divToAppend').html(data);

            //*****
            // Assuming everything else is correct,
            // what do I do here to have my partial view returned 
            // at the end of the currently displayed page?
            //*****


          });
    });
});