首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有剃刀页面的ASP.net JQuery函数

带有剃刀页面的ASP.net JQuery函数
EN

Stack Overflow用户
提问于 2019-12-17 06:47:57
回答 2查看 51关注 0票数 0

我正在处理一个带有Razor Pages的项目,我正在尝试创建一个级联下拉列表。到目前为止,我已经完成了列表并将其返回。我已经学习了几个教程,但是我不知道如何正确地调用C#函数。f下面是我所拥有的:

代码语言:javascript
复制
    <section class="bg-light pt-7 pb-7 pt-md-0 pb-md-8">
        <div class="container position-relative px-md-0">
            <div class="search-box search-box-dark">

                <form method="GET" action="listings-half-screen-map-list.html">

                    @* This will be the first drop down *@
                    <div class="select-default">
                        <select id="scaleID" class="select-location" asp-for="scaleId" asp-items="Model.scl"><option>Choose Scale</option></select>
                    </div>
                    @* This will be the second drop down *@
                    <div class="select-default">
                        <select id="manfID" class="select-location" asp-for="manfId" asp-items="Model.man"><option>Choose Manufacturer</option></select>
                    </div>

                    <div class="select-default">
                        <select id="vechID" class="select-location" asp-items="ViewBag.Vehicles"><option>Choose Vehicle</option></select>
                    </div>

                    <button type="submit" class="btn btn-primary"> Search </button>
                </form>
            </div>
        </div>
    </section>


    <script>
    $("#manfID").change(function () {
        var manF = $("#manfID").val();
        var url = "/Pages/Index";

        $.getJSON(url, { scaleId: manF }, function (data) {  
            var item = "";
            $("#vechID").empty();
            $.each(data, function (i, item) {
                item += '<option value="' + item.value + '">' + item.text + '</option>'
            });
            $("#vechID").html(item);
        });
    });
    </script>

然后这是我的C#代码:

代码语言:javascript
复制
    public JsonResult OnGetSubCategories(int scaleId)
    {
        List<Vehicle> list = new List<Vehicle>();

        list = _context.Vehicles.Where(a => a.ScaleId == scaleId && a.ManufacturerId == manfId).ToList();

        return new JsonResult(list);
    }

这两个文件都在Index.html和index.htmlcs文件中。任何建议都是值得感谢的,我认为URL是错误的部分。

EN

回答 2

Stack Overflow用户

发布于 2019-12-17 07:17:31

在URL中,您必须传递Razor页面的路径+方法的名称。像这样:

代码语言:javascript
复制
var url = '/Pages/Index/OnGetSubCategories';

代码语言:javascript
复制
 var url = '/Index/OnGetSubCategories';
票数 0
EN

Stack Overflow用户

发布于 2019-12-17 07:39:12

要使用Razor Pages通过Ajax传递URL,请使用以下命令:

代码语言:javascript
复制
   var url2 = '@Url.Page("index","SubCategories")';

请注意,我们不需要"OnGet“,其余的将由编译器处理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59365320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档