我是否需要编写ajax调用的success函数来完成向视图发布数据?

我是否需要编写ajax调用的success函数来完成向视图发布数据?,ajax,asp.net-mvc-3,Ajax,Asp.net Mvc 3,我正在使用数据采集器进行ajax调用。控制器被调用,我确认数据是通过使用断点发送到视图的。对我来说,这似乎是一个成功。但是,即使我确认发送到视图的模型包含数据,视图中也没有显示任何内容 由于我不熟悉使用ajax,我不确定如何处理调用的success函数。我应该在ajax调用的success函数中添加一些东西来完成向视图发布数据吗?有人能帮我写代码的成功部分吗?我看过一些示例,但它们似乎都在以不同的方式使用success,所以我不太知道它如何与我的场景配合使用。以下是我的观点和脚本: <d

我正在使用数据采集器进行ajax调用。控制器被调用,我确认数据是通过使用断点发送到视图的。对我来说,这似乎是一个成功。但是,即使我确认发送到视图的模型包含数据,视图中也没有显示任何内容

由于我不熟悉使用ajax,我不确定如何处理调用的success函数。我应该在ajax调用的success函数中添加一些东西来完成向视图发布数据吗?有人能帮我写代码的成功部分吗?我看过一些示例,但它们似乎都在以不同的方式使用success,所以我不太知道它如何与我的场景配合使用。以下是我的观点和脚本:

 <div class ="ui-widget" >
 <label for ="datep">Date: </label><input id="datep" />
 </div>


 @if (Model.Assignments != null)
 {

 <table>
<tr>
   <th>
      Assignment  Course
    </th>



    <th>
        Class Day
    </th>


    <th>
     Class Time
    </th>


 </tr>

@foreach (var item in Model.Assignments.Select((x, i) => new { Data = x, Index = i }))
 {

if (item.Data.Date.ToShortDateString() == ViewBag.theDate)
{
<tr>
<td>

    @Html.DisplayFor(modelItem => item.Data.Course)

</td>


    <td>





         @Html.DisplayFor(modelItem => item.Data.HomeworkGrade)

     </td>
      <td>
        @Html.DisplayFor(modelItem => item.Data.Date)
      </td>




        </tr>
     }
 }

    </table>

 }



   <input type="hidden" autofocus=true/>




 <script type="text/javascript">
   $(document).ready(function () {
    $("#datep").datepicker({ showOn: "both", buttonText: "Select Date", changeMonth: true, changeYear: true, yearRange: "-2:+2", showOtherMonths: true, onSelect: function (date, datepickder) {
        var sltdDate = { selectedDate: date };
        $.ajax({
            type: "GET",
            url: "/Schedule/GetSchedule",
            data: sltdDate,
            async: false,
            datatype: "html",
            sucess: function (data) {
            }
        });

    }




    });

   });
 </script>

日期:
@如果(Model.Assignments!=null)
{
作业课程
上课日
上课时间
@foreach(Model.Assignments.Select中的var项((x,i)=>new{Data=x,Index=i}))
{
if(item.Data.Date.ToShortDateString()==ViewBag.theDate)
{
@DisplayFor(modelItem=>item.Data.Course)
@DisplayFor(modelItem=>item.Data.HomeworkGrade)
@DisplayFor(modelItem=>item.Data.Date)
}
}
}
$(文档).ready(函数(){
$(“#datep”).datepicker({showOn:“两者”,按钮文字:“选择日期”,changeMonth:true,changeYear:true,yearRange:“-2:+2”,showOtherMonths:true,onSelect:function(日期,datepicker){
var sltdDate={selectedDate:date};
$.ajax({
键入:“获取”,
url:“/Schedule/GetSchedule”,
数据:sltdDate,
async:false,
数据类型:“html”,
成功:函数(数据){
}
});
}
});
});

如果您向服务器请求信息(如您的情况),则需要在成功功能中执行某些操作

怎么办?视情况而定

通常的做法是将返回的数据放在容器中

所以,如果控制器操作只返回数据。。。您应该在success函数中创建HTML(例如迭代返回的数据)。。。然后把它放在另一个容器div中

有时。。。你只需要更新一个文本,这样更容易。。。但你需要为此做点什么

如果您在MVC中使用Microsoft Ajax帮助程序。。。它们会收到一个参数,您可以在其中指出哪个dom元素将是需要用Ajax调用的返回替换的容器

在这里您可以看到jQuery Ajax的完整参考:

最后,你有几个简单的例子。 请注意,这些示例的编写方式与您所做的略有不同。。。这是编写调用的较新形式:现在不再使用
success
函数。。。一旦请求完成,您将附加一个
.done(函数{/})
来处理


所以。。。检查示例以及您在“完成”函数中找到的内容,这与您可以在“成功”函数中放置的内容相同。

因此,我创建了一个id为returnedData的div,并将其放在我的成功函数中…$(“#returnedData”);但是在调用之后,容器中没有放置任何内容。我也试着在函数中放置一个警报,但它也没有触发。发现这意味着打电话不成功?事实上我只是注意到我的成功中有一个打字错误。现在它工作了!谢谢