如何使用AJAX调用将数据从JavaScript传输到模型
我的实现 型号如何使用AJAX调用将数据从JavaScript传输到模型,javascript,jquery,ajax,asp.net-mvc,razor,Javascript,Jquery,Ajax,Asp.net Mvc,Razor,我的实现 型号 namespace Game.Models { public class Lev_model { public static string GetJsonFile(string Level) { string Data; string selectedLevel = "One"; string one = Syste
namespace Game.Models
{
public class Lev_model
{
public static string GetJsonFile(string Level)
{
string Data;
string selectedLevel = "One";
string one = System.Web.HttpContext.Current.Server.MapPath(@"~/Data//lvl-one.json");
string two = System.Web.HttpContext.Current.Server.MapPath(@"~/Data//lvl-two.json");
if (selectedLevel == "One")
{
Data = File.ReadAllText(one);
}
else if (selectedLevel == "Two")
{
Data = File.ReadAllText(two);
}
else
{
Data = "Default";
}
return Data;
}
}
}
查看
//AJAX call to change the selectedLevel to "one" or "two"
var lvlData = "One"
$.ajax({
url: '@Url.Action("GetLevelData", "Home")',
type: "POST",
data: {strLvl: lvlData},
success: function(response) {
response ? alert("It worked!") : alert("It didn't work.");
}
控制器
[RequireHttps]
public ActionResult GetLevelData(string strLvl)
{
var data = Lev_model.GetJsonFile(strLvl);
return Json(data, JsonRequestBehavior.AllowGet);
}
我的问题
如何添加View/AJAX
调用来更改模型的值。请注意,我将selectedLevel硬编码为“一”,但我想使其成为动态的,这意味着我可以更改该值,以便它只能加载一个JSON文件。试试这个-
$.ajax({
type: "POST",
url: serviceUrl,
data: { strLvl: YourData},
success: function (response) {
//Do some thing
},
error: function () {
//Error message
}
});
$.ajax({
type: "POST",
url: '/controller/GetLevelData',
data : JSON.stringify({ 'strLvl': lvlData }),
contentType: 'application/json; charset=utf-8',
success: function (response) {
},
error: function () {
}
});
您是否试图通过ajax调用
GetJsonFile
方法?该值来自何处?您只需添加数据:{strLvl:'One;},
选项,将“One”
的值回发到您的方法中(并删除contentType:“application/json”,
选项)@Shyju我已经将json转换为javascript对象,我只想更新我的model@StephenMuecke你有我的例子吗?因为url也返回了一个错误,它在我的评论中刚刚注意到您有var lvlData
所以它只是数据{strLvl:lvlData},
并且它将绑定到GetLevelData()方法中的字符串strLvl
参数。url返回错误是什么意思?-什么错误?(试试url:'@url.Action(“GetLevelData”,“Home”),
)问题出在哪里?控制台上是否显示任何错误?控制台中没有问题。还有其他方法吗?它是否击中了控制器?它在控制器中返回null,这可能是由于URL errorPlaceURL:'/controller/GetLevelData?strLvl='+lvlData
代替了ajax
中的URL,并注释掉data:JSON.stringify({'strLvl':lvlData})