如何使用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 errorPlace
URL:'/controller/GetLevelData?strLvl='+lvlData
代替了
ajax
中的URL,并注释掉
data:JSON.stringify({'strLvl':lvlData})