Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将HTML站点链接到MVC站点';s动作_C#_Asp.net Mvc - Fatal编程技术网

C# 将HTML站点链接到MVC站点';s动作

C# 将HTML站点链接到MVC站点';s动作,c#,asp.net-mvc,C#,Asp.net Mvc,我正在点击按钮构建一个HTML页面,它会将数据从HTML页面的本地存储传输到MVC站点的操作和处理操作,然后将数据保存到MVC站点 这是我的HTML按钮的功能: function OH10() { var url1 = "@Url.Action('createFuel','FuelExtras')"; debugger; for (var i = 0; i < localStorage.leng

我正在点击按钮构建一个HTML页面,它会将数据从HTML页面的本地存储传输到MVC站点的操作和处理操作,然后将数据保存到MVC站点

这是我的HTML按钮的功能:

function OH10() {            
            var url1 = "@Url.Action('createFuel','FuelExtras')";
            debugger;
            for (var i = 0; i < localStorage.length; i++) {
                var key = localStorage.key(i);
                var val = localStorage.getItem(key);
                $.ajax({
                    type: "POST",
                    url: url1,
                    data: val,
                    dataType: "json",
                    contentType: "application/json; charset=utf-8",
                    success: function () {
                        alert("Data has been added successfully.");
                    },
                    error: function () {
                        alert("Error while inserting data");
                    }
                });
            }
};
有什么建议吗?
还有一个问题正在开发中,我在同一个解决方案中构建了两个站点,但当我将其部署到intranet时,我必须将其分为两个站点。可以吗?

我在您的示例中发现了几个错误:

1)
System.Web.Services.WebMethod
仅在webforms中使用,不能用于MVC中的
ActionResult
,应将其删除

2) AJAX回调放在一个循环中,因此它将执行多次而不是单个请求

3) 传递的数据是作为单个字符串从
getItem()
函数中获取的最后一个
localStorage
值,而不是反映模型属性名称及其值的键值对

因此,假设您拥有此模型:

public class FuelExtra
{
    public string CaptainEmpNo { get; set; } 
    public string AirCraft { get; set; } 
    public string FlightNo { get; set; } 
    public string DepartureAirport { get; set; } 
    public string ArrivalAirport { get; set; }

    // other properties
}
然后您应该将键值对对象作为JSON字符串发送,因为
contentType
设置已被
JSON.stringify()
设置为
application/JSON
,如下例所示:

函数OH10(){
var key=[];//键数组
var val=[];//值数组
var obj={};//组合的KVP对象
var url1=“@Url.Action(“CreateFuel”、“FuelExtras”)”;
调试器;
for(var i=0;i
控制器动作应如下所示:

[HttpPost]
public ActionResult CreateFuel(FuelExtra fuelExtra)
{
    db.FuelExtras.Add(fuelExtra);
    db.SaveChanges();
    return Json(new { Message = "SUCCESS" });
}
因为您是以POST方法发送AJAX请求,所以不需要
JsonRequestBehavior.AllowGet

注意:


确保从AJAX传递的JSON字符串中的所有键名与在
FuelExtra
类中声明的所有属性名相同。

[System.Web.Services.WebMethod]
在MVC中是不必要的,应该删除。另外
contentType:“application/json;charset=utf-8”
如果没有对数据使用
json.stringify
,则是错误的。你能显示
FuelExtra
类属性吗(只需编辑问题就可以了)?谢谢@TetsuyaYamamoto,这是我的FuelExtra.cs:public partial class public int ID{get;set;}public string CaptainEmpNo{get;set;}public string飞机{get;set;}public string FlightNo{get;set;}公共字符串DepartureAirport{get;set;}公共字符串ArrivalAirport{get;set;}最近,当我在MVC站点中创建一个视图并使用相同的按钮代码时,它可以工作,但是当我将此代码复制到不同的HTML页面时,每次都会出错。您遇到了什么样的错误?您能否提供
val
变量的内容(使用
console.log(val)
),因为正确的
data
设置应该是
data:{fuelExtra:val}
?根据您当前的代码,您正在多次发送AJAX请求,而不是单个请求。错误是无法连接到url@tetsuyayayamamoto,下面是示例val:{“Fuel444”:“{”CaptainEmpNo\:“4445\”,““AirCraft\”:“5555\”,““FlightNo\”:“444\”,“DepartureAirport\”:“HCM\”,“ArrivalAirport\”:“HN\”,“ReasonFuel1\:“Weather InRoute\”,“,”ExtraFuel1\“:“1112\”,“ReasonExtraFuel2\”:“\”,“ExtraFuel2\”:“\”,“ReasonExtraFuel3\”:“\”,“ExtraFuel3\”:“\”,“ReasonExtraFuel4\”:“\”,“ExtraFuel4\”,“Reason\”:“\”,“TotalExtraFuel3\”:“1112\”}抱歉,Tetsuya在插入数据时仍然出现错误”。我看到,在调试时,代码似乎在$.ajax处停止,然后立即跳转到错误,而不是转到代码“type”或任何东西?尝试使用Fiddler或其他工具检查请求和响应详细信息,或利用
警报(err)
显示消息。还要确保URL是正确的,可供请求访问。
[HttpPost]
public ActionResult CreateFuel(FuelExtra fuelExtra)
{
    db.FuelExtras.Add(fuelExtra);
    db.SaveChanges();
    return Json(new { Message = "SUCCESS" });
}