我是否需要编写ajax调用的success函数来完成向视图发布数据?
我正在使用数据采集器进行ajax调用。控制器被调用,我确认数据是通过使用断点发送到视图的。对我来说,这似乎是一个成功。但是,即使我确认发送到视图的模型包含数据,视图中也没有显示任何内容 由于我不熟悉使用ajax,我不确定如何处理调用的success函数。我应该在ajax调用的success函数中添加一些东西来完成向视图发布数据吗?有人能帮我写代码的成功部分吗?我看过一些示例,但它们似乎都在以不同的方式使用success,所以我不太知道它如何与我的场景配合使用。以下是我的观点和脚本:我是否需要编写ajax调用的success函数来完成向视图发布数据?,ajax,asp.net-mvc-3,Ajax,Asp.net Mvc 3,我正在使用数据采集器进行ajax调用。控制器被调用,我确认数据是通过使用断点发送到视图的。对我来说,这似乎是一个成功。但是,即使我确认发送到视图的模型包含数据,视图中也没有显示任何内容 由于我不熟悉使用ajax,我不确定如何处理调用的success函数。我应该在ajax调用的success函数中添加一些东西来完成向视图发布数据吗?有人能帮我写代码的成功部分吗?我看过一些示例,但它们似乎都在以不同的方式使用success,所以我不太知道它如何与我的场景配合使用。以下是我的观点和脚本: <d
<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”);但是在调用之后,容器中没有放置任何内容。我也试着在函数中放置一个警报,但它也没有触发。发现这意味着打电话不成功?事实上我只是注意到我的成功中有一个打字错误。现在它工作了!谢谢