Jquery NETMVC。如何通过ajax视图返回修改的
我对ajax有问题。 这是代码 型号Jquery NETMVC。如何通过ajax视图返回修改的,jquery,asp.net,ajax,asp.net-mvc,model-view-controller,Jquery,Asp.net,Ajax,Asp.net Mvc,Model View Controller,我对ajax有问题。 这是代码 型号 public class ViewModel { public long requestedVar { get; set; } public string ReturnedDescription { get; set; } } 查看 姓名:AddNewInfo <head> <script> $.datepicker.regional['ru'] = { closeTex
public class ViewModel
{
public long requestedVar { get; set; }
public string ReturnedDescription { get; set; }
}
查看
姓名:AddNewInfo
<head>
<script>
$.datepicker.regional['ru'] = {
closeText: "Закрыть",
prevText: "<Пред",
nextText: "След>",
currentText: "Сегодня",
monthNames: [
"Январь", "Февраль", "Март", "Апрель", "Май", "Июнь",
"Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"
],
monthNamesShort: [
"Январь", "Февраль", "Март", "Апрель", "Май", "Июнь",
"Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"
],
dayNames: ["воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота"],
dayNamesShort: ["вск", "пнд", "втр", "срд", "чтв", "птн", "сбт"],
dayNamesMin: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"],
weekHeader: "Нед",
dateFormat: "dd.mm.yy",
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ""
};
</script>
<script>
var GlobalVar1=0;
$("#dropdownlist1").change(function getID() {
<some code>
GlobalVar1 = selectedValue;
alert(GlobalVar1);
$.ajax({
url: "@Url.Action("myMethod1", "Home")",
type: 'POST',
async: false,
data: { requestedVar : GlobalVar1},
success: function (data) {
alert('OK');
$("html").html(result);
},
error: function (error) {
alert('error');
}
});
});
</script>
</head>
<body>
<div>
@Html.DropDownListFor(m => m.SelectedDirectionID, new SelectList(Model.DirectionList.Select(x => new SelectListItem { Value = x.Id.ToString(), Text = x.DirectionName }), "Value", "Text"),"", new { @class = "Duration", required = "required", id="dropdownlist1" })
@Html.ActionLink("+", "_AddDirection", "Home", null, new { @class = "modal-link btn btn-success"})
<div>@Html.DisplayName("Choosen description")</div>
<div>@Html.TextBoxFor(m => m.ReturnedDescription, new { @class = "Duration", disabled = "disabled" })</div>
</div>
</body>
更新
现在如何运作:
ajax成功地发送了一个POST请求,其中包含数据、my controller返回视图,该视图显示在浏览器中,但返回的视图不包含任何JS脚本
问题是:
如何使用JS脚本和ReturnedDescription值返回到浏览器的完整视图?对于使用MVC模式通过Ajax恢复数据,您应该从控制器返回JSON(例如)类型的数据,以便在使用Ajax恢复视图中的数据之后 您必须使用:
return Json(vm, JsonRequestBehavior.AllowGet);
而不是:
return View("AddNewInfo", vm);
完成的代码为:
[HttpPost]
public JsonResult myMethod1(ViewModel m)
{
var db = new DB();
ModelState.Clear();
var returnedVal = db.GetDesctiption(m.requestedVar).First();
m.ReturnedDescription = returnedVal.Description;
var vm = DataFactory.Refresh();
vm.ReturnedDescription = m.ReturnedDescription;
return Json(vm,JsonRequestBehavior.AllowGet);
}
请注意使用此代码的方法。应该是通过Ajax调用请求数据的位置
此外,我将以json类型从ajax调用发送数据:
data: JSON.stringify(dataToSend)
完成的代码将是(如果您按json类型发送数据,您也将按字符串类型恢复数据):
var GlobalVar1=0;
$(“#dropdownlist1”).change(函数getID(){
GlobalVar1=所选值;
警报(全球警报1);
$(文档).ready(函数(){
$.ajax({
url:“@url.Action(“myMethod1”,“Home”)”,
键入:“POST”,
async:false,
成功:功能(数据){
警报(“发送完成”);
},
错误:函数(错误){
警报(“错误”);
}
});
});
};
对于使用MVC模式通过Ajax恢复数据,您应该从控制器返回JSON(例如)类型的数据,以便在通过Ajax恢复数据后查看
您必须使用:
return Json(vm, JsonRequestBehavior.AllowGet);
而不是:
return View("AddNewInfo", vm);
完成的代码为:
[HttpPost]
public JsonResult myMethod1(ViewModel m)
{
var db = new DB();
ModelState.Clear();
var returnedVal = db.GetDesctiption(m.requestedVar).First();
m.ReturnedDescription = returnedVal.Description;
var vm = DataFactory.Refresh();
vm.ReturnedDescription = m.ReturnedDescription;
return Json(vm,JsonRequestBehavior.AllowGet);
}
请注意使用此代码的方法。应该是通过Ajax调用请求数据的方法
此外,我将以json类型从ajax调用发送数据:
data: JSON.stringify(dataToSend)
完成的代码将是(如果您按json类型发送数据,您也将按字符串类型恢复数据):
var GlobalVar1=0;
$(“#dropdownlist1”).change(函数getID(){
GlobalVar1=所选值;
警报(全球警报1);
$(文档).ready(函数(){
$.ajax({
url:“@url.Action(“myMethod1”,“Home”)”,
键入:“POST”,
async:false,
成功:功能(数据){
警报(“发送完成”);
},
错误:函数(错误){
警报(“错误”);
}
});
});
};
步骤一
更改您的操作方法并返回一个Json结果
[HttpPost]
public JsonResult myMethod1(ViewModel m)
{
var db = new DB();
ModelState.Clear();
var returnedVal = db.GetDesctiption(m.requestedVar).First();
m.ReturnedDescription = returnedVal.Description;
var vm = DataFactory.Refresh();
vm.ReturnedDescription = m.ReturnedDescription;
return Json(vm,JsonRequestBehavior.AllowGet);
}
第二步
更改ajax成功选项
$.ajax({
url: "@Url.Action("myMethod1", "Home")",
type: 'POST',
async: false,
data: { requestedVar : GlobalVar1},
success: function (data) {
if(data.ReturnedDescription){
$('#ReturnedDescription').val(data.ReturnedDescription); // This line to be noted.
}
// alert("Sending complete");
},
error: function (error) {
alert('error');
}
});
也不要忘记将代码保存在$(文档)中。准备好了吗
[HttpPost]
public JsonResult myMethod1(ViewModel m)
{
var db = new DB();
ModelState.Clear();
var returnedVal = db.GetDesctiption(m.requestedVar).First();
m.ReturnedDescription = returnedVal.Description;
var vm = DataFactory.Refresh();
vm.ReturnedDescription = m.ReturnedDescription;
return Json(vm,JsonRequestBehavior.AllowGet);
}
更改您的操作方法并返回一个Json结果
[HttpPost]
public JsonResult myMethod1(ViewModel m)
{
var db = new DB();
ModelState.Clear();
var returnedVal = db.GetDesctiption(m.requestedVar).First();
m.ReturnedDescription = returnedVal.Description;
var vm = DataFactory.Refresh();
vm.ReturnedDescription = m.ReturnedDescription;
return Json(vm,JsonRequestBehavior.AllowGet);
}
第二步
更改ajax成功选项
$.ajax({
url: "@Url.Action("myMethod1", "Home")",
type: 'POST',
async: false,
data: { requestedVar : GlobalVar1},
success: function (data) {
if(data.ReturnedDescription){
$('#ReturnedDescription').val(data.ReturnedDescription); // This line to be noted.
}
// alert("Sending complete");
},
error: function (error) {
alert('error');
}
});
也不要忘记将代码保存在$(文档)中.ready你好,Anadi。任务是在浏览器中显示带有样式文本的完整视图,以及带有返回描述值的TextBoxFor。在这种情况下,$.ajax将无法工作。您必须使用ajax.Beginform。使用“AddNewInfo.cshtml”更新您的问题,以便我可以更新我的答案。你好,Anadi。任务是在浏览器中显示complete使用样式文本和带有返回描述值的TextBoxFor查看。在这种情况下,$.ajax将不起作用。您必须使用ajax.Beginform。使用“AddNewInfo.cshtml”更新您的问题,以便我可以更新我的答案。
[HttpPost]
public JsonResult myMethod1(ViewModel m)
{
var db = new DB();
ModelState.Clear();
var returnedVal = db.GetDesctiption(m.requestedVar).First();
m.ReturnedDescription = returnedVal.Description;
var vm = DataFactory.Refresh();
vm.ReturnedDescription = m.ReturnedDescription;
return Json(vm,JsonRequestBehavior.AllowGet);
}