【问题标题】:Ajax helper tags in Asp.net CoreAsp.net Core 中的 Ajax 助手标签
【发布时间】:2019-03-09 14:04:25
【问题描述】:

请帮忙。我想点击按钮来处理Ajax表单, 我不明白 data-ajax 是如何工作的。

这是我的 HTML 代码

<form asp-page-handler="UpdateTable" data-ajax="true" 
              data-ajax-method="post"
              data-ajax-update="#Tables"
              data-ajax-mode="after"
              data-ajaz-url="Secon">
            <ul class="widget-list">``
                <li> <input type="checkbox" name="name1" value="true" /> <span>sdfsdfsfsdfsf</span></li>
                <li> <input type="checkbox" name="name2" value="true" /> <span>ssdfsdf</span></li>
                <li> <input type="checkbox" name="name3" value="true" /> <span>sdfdsfsdewe</span></li>
                <li> <input type="checkbox" name="name4" value="true" /> <span>sdfsdfsfsdfsf</span></li>
                <li> <input type="checkbox" name="name5" value="true" /> <span>ssdfsdf</span></li>
                <li> <input type="checkbox" name="name6" value="true" /> <span>sdfdsfsdewe</span></li>
            </ul>` `
            <p style="">Дата: <input type="text" style="width:180px; border-radius:5px;" name="Days" required class="datepicker-here" data-range="true" data-multiple-dates-separator=" - " data-position='top right' /></p>
            <p style="margin-left:19px;">
                С: <input type="text" style="width:60px; border-radius:5px;" name="TimeFrom" required class="only-time" data-position='top right' />
                До: <input type="text" style="width:60px; border-radius:5px;" name="TimeTo" required class="only-time" data-position='top right' />
            </p>
            <input type="submit" value="Показать" class="button-style" style="margin-left:60px;" />
        </form> 

和我要更新的 div

<div class="div-table" id="Tables">
            <div class="BodyTwo" style="width:auto;">
                <h3 >@Model.Name</h3>
                @{
                    DataSet DS = Model.Data;
                    // = Model.Data;
                }
            </div>
           </div>

和我的 C# 代码

public class AboutModel : PageModel
    {
        public string Name  { get; set; }
        public DataSet Data { get; set; }
        public string Date { get; set; }
        public string View { get; set; }

        public DataTable dataTable { get; set; }
       public string Razdel { get; set; }

        IRepositor repositor;
        public AboutModel (IRepositor repositor)
        {
            this.repositor = repositor;
        }
        public IActionResult OnGet()
        {
            Name = " mnnjhjbbhvbhvh";
            Data = new DataSet();
            string StrocRezdel = Request.Query.FirstOrDefault(p => p.Key == "Razdel").Value;
            View = Request.Query.FirstOrDefault(p => p.Key == "View").Value;
            if (StrocRezdel != null)
            {
                Data = repositor.DataSetTwo(Name);
            }
            Razdel = StrocRezdel;
            return Page();
        }
        public void OnPostUpdateTable(bool name1, bool name2, bool name3, bool name4, bool name5, bool name6)
        {
            Name = "";
            Name += name1 == true ? "dsdfsdf " : "";
            Name += name2 == true ? "svwer " : "";
            Name += name3 == true ? "sghjkker " : "";
            Name += name4 == true ? "mjhj " : "";
            Name += name5 == true ? "rffvbn " : "";
            Name += name6 == true ? "ooluhj " : "";
            Console.WriteLine("UEEEEEEEEEE");

        }

    }

但是当我按下按钮时,又添加了一个菜单 屏幕1 , 屏幕2

为什么当我按下“显示”按钮时会发生这种情况? 谢谢。

【问题讨论】:

    标签: c# asp.net .net asp.net-core razor-pages


    【解决方案1】:

    您的表单中有一些错误。 asp-page-handler 属性是不必要的,因为表单将/应该发布到data-ajax-url 属性指定的 URL。您拼错了 (data-ajaz-url),它似乎没有指向您显示的任何代码。您还将data-ajax-mode 设置为after,这会导致AJAX 调用返回的内容被附加到现有内容中。

    要看到你想要的结果并不容易,所以我将向你指出一些关于在 Razor 页面中使用不显眼的 AJAX 的通用内容:https://www.learnrazorpages.com/razor-pages/ajax/unobtrusive-ajax

    【讨论】:

    • 我想根据选中的复选框更新表格,但首先我想了解 Ajax 是如何工作的,所以我只是尝试先更新表格上方的单词。
    • 并在控制台 chrome 中挂起“主线程上的同步 XMLHttpRequest 已被弃用,因为它对最终用户的体验产生不利影响。有关更多帮助,请查看xhr.spec.whatwg.org。”
    • @DimaAndrianov 我在您发布的代码中看不到错误消息的任何原因。您是否已完成我建议的更正?
    • no js我不是很了解,所以我什至不去那里
    • 我更正了表单
      但没有任何改变
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    • 2019-05-22
    相关资源
    最近更新 更多