Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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# Onclick操作不会转到该方法_C#_Asp.net Core - Fatal编程技术网

C# Onclick操作不会转到该方法

C# Onclick操作不会转到该方法,c#,asp.net-core,C#,Asp.net Core,这是我的cshtml文件中的代码 <button type="button" class="button js-book-class" onclick="@Url.Action("BookTheClass", "MemberArea", new { ClassID = Aclass.ClassID })">Book Now</button> 这是因为你有冲突 Url.Action生成一个href链接,单击该链接将执行浏览器导航,这意味着GET请求 当您的服务器book执

这是我的cshtml文件中的代码

<button type="button" class="button js-book-class" onclick="@Url.Action("BookTheClass", "MemberArea", new { ClassID = Aclass.ClassID })">Book Now</button>

这是因为你有冲突

Url.Action
生成一个href链接,单击该链接将执行浏览器导航,这意味着GET请求

当您的服务器
book执行
POST
时,希望调用类
操作

简单的解决方法(在本例中也是不太好的解决方案)是将您的方法更改为
[HttpGet]
(我相信这是默认设置),然后它就会得到解决

更准确的解决方案是创建一个表单元素并使按钮提交数据,这将使您只在HTML中获得更改,而不是服务器端

我认为您应该遵守<代码> POST <代码>,是因为我相信“强> > <强”应该被看作是一个查询,并且相同的请求应该有相同的响应。


Post应具有导致副作用的作用。在Rest中,意思是创造。但是,作为更改服务器状态的一般规则。

您认为在不重新启动页面的情况下,从控件单击view按钮运行方法的最佳方法是什么,寻找一个关于ajax的简单教程,最好是使用Asp.Net来执行请求和处理您认为合适的响应。您可以使用javascript将数据发布到您想要的url,然后对响应执行一些操作
       [HttpPost]
        public ContentResult BookTheClass(int ClassID)
        {
            Class selectedClass= _context.classes.Find(ClassID);
            selectedClass.spaceUsed++;
            _context.SaveChanges();

            return Content(ClassID.ToString());//just for testing
        }