Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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
Jquery MVC4 Ajax请求代码404_Jquery_Ajax_Asp.net Mvc 4_Json.net - Fatal编程技术网

Jquery MVC4 Ajax请求代码404

Jquery MVC4 Ajax请求代码404,jquery,ajax,asp.net-mvc-4,json.net,Jquery,Ajax,Asp.net Mvc 4,Json.net,每当我在浏览器中检查控制台时,它都会说找不到代码为404的URL。它执行post的URL是http://localhost:54473/Date/GetArticleName 日期控制器.cs中的方法 public JsonResult GetArticleName(long barcode) { ArticleDbContext artdb = new ArticleDbContext(); Article art = (Article) artdb.Articles.Wher

每当我在浏览器中检查控制台时,它都会说找不到代码为404的URL。它执行post的URL是
http://localhost:54473/Date/GetArticleName

日期控制器.cs中的方法

public JsonResult GetArticleName(long barcode)
{
    ArticleDbContext artdb = new ArticleDbContext();
    Article art = (Article) artdb.Articles.Where(a => a.Barcode == barcode).First();
    return Json(art.Name, JsonRequestBehavior.AllowGet);
}
Create.schtml

@model DatoCheckerMvc.Models.Date

@{
    ViewBag.Title = "Opret ny";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Opret</h2>

@using (Html.BeginForm("Create", "Date", FormMethod.Post, new { }))
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true)


    <script type="text/javascript">
        function validationFunction() {
            var isValid = true;
            if (!$("#ArticleBarcode").val() || $("#ArticleBarcode").val() == "" || $("#ArticleBarcode").val().match("^\d+$")) {
                isValid = false;
            }
            if (!$("#RunDate").val() || $("#RunDate").val() == "" || $("#RunDate").val().match("((?:(?:[0-2]?\\d{1})|(?:[3][01]{1}))[-:\\/.](?:[0]?[1-9]|[1][012])[-:\\/.](?:(?:[1]{1}\\d{1}\\d{1}\\d{1})|(?:[2]{1}\\d{3})))(?![\\d])")) {
                isValid = false;
            }

            if (isValid) {
                return true;
            }
            else {
                return false;
            }
        }

        $(document).ready(function () {
            $(window).keydown(function (event) {
                if ((event.keyCode == 13) && (validationFunction() == false)) {
                    event.preventDefault();
                    return false;
                }
            });

            $("#ArticleBarcode").change(function (event) {
                $.ajax({ //This function is the call to the method.
                    url: '@Url.Action("GetArticleName", "Date")',
                    data: { barcode: $("#ArticleBarcode").val() },
                    type: 'POST',
                    contentType: 'application/json; charset=utf-8',
                    dataType: 'json',
                    success: function (result) {
                        var divInsert = document.getElementById("JsonResponse");
                        divInsert.innerHTML = result;
                    },

                    error: function () {

                        alert("error");
                    }
                });
            });
        });
    </script>

    <fieldset>
        <legend>Dato</legend>
        <div class="row">
            <div class="form-group col-md-4">
                <div class="editor-label">
                    @Html.LabelFor(model => model.ArticleBarcode)
                </div>
                <div class="editor-field">
                    @Html.TextBoxFor(model => model.ArticleBarcode, null, new { @class = "form-control" })
                    @Html.ValidationMessageFor(model => model.ArticleBarcode)
                </div>
            </div>
        </div>

        <div class="row">
            <div class="form-group col-md-4">
                <div class="editor-label">
                    <label for="ArticleName">Varenavn</label>
                </div>
                <div class="editor-field">
                    <div id="ArticleName">

                    </div>
                </div>
            </div>
        </div>

        <div class="row">
            <div class="form-group col-md-4">
                <div class="editor-label">
                    @Html.LabelFor(model => model.RunDate)
                </div>
                <div class="editor-field">
                    @Html.TextBoxFor(model => model.RunDate, null, new { @class = "form-control" })
                    @Html.ValidationMessageFor(model => model.RunDate)
                </div>
            </div>
        </div>
        <p>
            <input class="btn btn-default" type="submit" value="Opret" />
        </p>
    </fieldset>
}

<div>
    @Html.ActionLink("Tilbage", "Index")
</div>


@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}
@model DatoCheckerMvc.Models.Date
@{
ViewBag.Title=“Opret ny”;
Layout=“~/Views/Shared/_Layout.cshtml”;
}
奥普拉特
@使用(Html.BeginForm(“Create”,“Date”,FormMethod.Post,new{}))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
函数验证函数(){
var isValid=true;
如果(!$(“#ArticleBarcode”).val()|$(“#ArticleBarcode”).val()==”|$(“#ArticleBarcode”).val().match(“^\d+$”){
isValid=false;
}
若有(!美元(“35;运行日期)以及(“35;运行日期”运行日期)的(((!!)以及((((!)以及(((“#运行日期”)以及(((((“[运行日期)以及((“[运行日期)运行日期))的((((((::::(:([除了除了除了除了除了除了除了除了除了运行日期)运行日期)之外,;;;;;;;;;)若(((((((“[[[除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了(?![\\d])){
isValid=false;
}
如果(有效){
返回true;
}
否则{
返回false;
}
}
$(文档).ready(函数(){
$(窗口).keydown(函数(事件){
if((event.keyCode==13)&&(validationFunction()==false)){
event.preventDefault();
返回false;
}
});
$(“#ArticleBarcode”)。更改(功能(事件){
$.ajax({//此函数是对方法的调用。
url:'@url.Action(“GetArticleName”,“Date”),
数据:{条形码:$(“#ArticleBarcode”).val()},
键入:“POST”,
contentType:'application/json;charset=utf-8',
数据类型:“json”,
成功:功能(结果){
var divInsert=document.getElementById(“JsonResponse”);
divInsert.innerHTML=结果;
},
错误:函数(){
警报(“错误”);
}
});
});
});
达托
@LabelFor(model=>model.ArticleBarcode)
@Html.TextBoxFor(model=>model.ArticleBarcode,null,新{@class=“form control”})
@Html.ValidationMessageFor(model=>model.ArticleBarcode)
瓦雷纳夫
@LabelFor(model=>model.RunDate)
@TextBoxFor(model=>model.RunDate,null,新的{@class=“form control”})
@Html.ValidationMessageFor(model=>model.RunDate)

} @ActionLink(“Tilbage”,“Index”) @节脚本{ @Scripts.Render(“~/bundles/jqueryval”) }
我有:

  • 确保JQuery在顶部加载
  • 尝试改用
    $.getJson()
  • 在方法中插入断点,查看它是否执行(未执行)

如何解决我的问题?

尝试使用
HttpPost
属性标记您的方法:

[HttpPost]
public JsonResult GetArticleName(long barcode) {
    ...
}
如果没有该属性,则假定它是一个
GET
请求


另外,如果它将是一个
POST
请求,则不需要
JsonRequestBehavior.AllowGet

这并没有解决问题,但我发现它在JQuery的这一行中抛出错误:
xhr.send((s.hascantent&s.data)| null)(jquery-1.9.0.js第8475行)这不是jquery错误。您正在向不存在的资源发出POST请求。添加属性后,您重新编译了吗?没有,但现在我重新编译(没有编辑任何内容),它只返回错误代码500。我想象添加
HttpPost
完成了操作,现在您的500错误发生在该方法的某个地方。检查错误日志以查看引发异常的位置。