问题标签 [httpverbs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - ASP.NET MVC - 如何创建 RESTful 控制器方案?
如果这是重复的,请告诉我 - 因为我快速浏览了一下,找不到任何真正回答我问题的东西。
我正在试验 ASP.NET MVC 2。现在来自 Web 窗体背景,我只真正处理了HTTP GET和HTTP POST。
我正在尝试查看如何将GET/PUT/POST/DELETE应用于我的存储库上的相应CRUD操作(查找、插入、更新、删除)。
假设我有一个控制器,具有以下操作方法:
对此有几个问题 - 您将如何命名/分隔操作方法?我应该通过整个模型(产品),还是只通过 id?
我遇到的问题是我不确定如何处理在我的视图中使用相关 HTTP 动词调用这些操作方法。
在这个阶段,我想我会有 3 个视图:
- “索引” - 绑定到
IEnumerable<Product>
模型,列出所有产品,带有“编辑”、“详细信息”和“删除”链接 - “ Single ” - 绑定到单个
Product
模型,列出产品的所有详细信息,并带有“更新”按钮。 - “新建” - 绑定到单个
Product
模型,带有用于创建产品的表单,带有“创建”按钮。
所以 - 我的问题是,我如何指定我想用特定的 HTTP 动词调用特定的控制器方法?
使用Html.BeginForm
,您可以指定一个FormMethod
枚举 - 但它只有 GET 和 POST。
- 如何执行 PUT 和 DELETE 命令?
- 我需要为每个 HTTP 动词提供单独的视图吗?
- 如果我有一个名为“Delete”的链接,我可以向我的控制器调用 HTTP DELETE 命令,还是需要使用表单操作删除将其重定向到新视图?
或者,这首先是一个愚蠢/矫枉过正的设计,我应该坚持使用“GET”和“POST”吗?
我对这种 Web 开发 (REST) 风格(相当)陌生,所以请善待。:)
更新
所以我看到了 Stephen Walther 写的这篇关于这个话题的有趣文章。
他指出 HTML 表单仅支持 GET 和 POST(因为我是 REST 风格的 Web 开发新手,我什至不知道这一点,对此我感到有些羞愧)。
显然,使用 PUT/DELETE 调用控制器操作的唯一方法是使用 AJAX。严重地?
那么我应该在这里做什么,我应该坚持使用 GET/POST,还是应该创建一个 JavaScript 文件,将底层 XmlHttpRequest 代码包装在一个不错的函数后面?
ASP.NET MVC 开发人员倾向于哪种方式?肯定有人问过自己同样的问题。
asp.net-mvc - 如果客户端不可用,如何自动重载 DELETE 和 PUT?
如何在应用程序启动时检测到客户端不支持DELETE
和PUT
动词并自动重载 POST 动词?
在服务器端,如何将那些重载的 POST 动词重定向到正确的操作中?
假设我有一个被覆盖的 DELETE 请求,我如何在控制器中调用与该操作匹配的适当函数?
我的猜测是我应该使用一些动作过滤器并使用反射来检查与我的函数匹配的属性(在这个例子中:)DeleteFoo(Guid Id)
。
php - 发布表单时发布与放置
在评估表单已提交时,我检查该方法是否是发布的,而不是获取的。有人告诉我这是一个很好的方法来知道表单是通过单击提交按钮提交的,并且它不仅仅是由在 url 中传递数据的脚本提交的。
“放置”方法怎么样。它似乎与“post”非常相似。是否可以或多或少地代替“post”而不损失“post”提供的好处?
ruby-on-rails - 当单击“link_to”生成的链接时,Rails 3 如何决定使用哪个 HTTP 动词?
我有两个链接:
生成的链接是:
同时单击 onEdit
和 on 时Delete
,使用该GET
方法。
Rails 如何决定使用哪种方法?
data-method="delete"
链接中的含义和rel="nofollow"
含义是什么Delete
?
httpverbs - 接受动词 httpverbs.get?
它有什么用????接受动词(httpverbs.get)并解释 httpverbs.post 太..
谢谢
asp.net - IsPostback 在技术上是如何工作的?
我目前遇到一个奇怪的问题,当我单击一个简单地回发到同一页面的 asp.net 按钮时,除了 Google Chrome 之外的所有浏览器都在 Page_Load 事件中注册对 IsPostback 的调用为真。
这使我尝试发现 ASP .Net 页面中的 IsPostback 属性是如何在技术上实现的,这是我正在努力寻找的东西。
迄今为止,我的想法是它可能与以下内容有关;
- 请求 VERB 类型是 POST 而不是 GET。
- 包含 Viewstate 信息的隐藏输入不存在任何信息,因此之前提交的控制信息不可用。
- 请求头中的 http referer 与当前 URL 相同。
谁能提供用于确定 IsPostback 布尔属性的条件的实际细分?
注意:我正在寻找实际的实现而不是感知/理论,因为我希望使用它来积极解决问题。我还搜索了 MSDN,迄今为止找不到任何准确涵盖该机制的技术文章。
在此先感谢,布赖恩。
asp.net-mvc - 限制每个动作的 HTTP 动词
限制每个操作的可用 HTTP 动词是一种好习惯吗?我的代码在没有[HttpGet]
, [HttpPost]
, [HttpPut]
, 或[HttpDelete]
装饰每个动作的情况下更干净,但它也可能不那么健壮或安全。我没有在许多教程或示例代码中看到这样做,除非明确需要动词,例如有两个“创建”操作,其中 GET 版本返回一个新表单,而 POST 版本插入一个新记录。
http - 为什么不使用其余的 HTTP 动词?
大多数时候,网站主要只使用GET
andPOST
用于所有操作,但还有七个动词。他们以前在哪里使用,但现在没有那么多了?
或者可能是因为某些浏览器无法识别其他动词?如果是这样的话,为什么浏览器厂商会选择实现一半的协议呢?
[更新]
我发现这篇文章很好地总结了这种情况:为什么 REST 失败。
rest - 使用 POST 作为 URL 字符限制的解决方法
如果你有一个 API 并且仅仅因为 URL 长度限制和请求中传递复杂的参数而支持 POST 操作,你还能说你有一个 RESTful 架构吗?
以上基本上暗示的是,对于这个特定的(只读)API,GET 和 POST 之间没有语义差异,因此可以用 GET 完成的操作也可以用 POST 完成(但反之则不然)到限制)。
这仍然会使架构的风格成为一种 RESTful 风格吗?
ruby-on-rails-3 - rails 使用特定动词重定向或呈现
我想在创建新项目时重定向到资源索引
这是控制器的一部分:
我感兴趣的行被标记为##########
我试过了
和其他一些东西
它重定向到正确的位置并很好地创建了项目,问题是我无法做到POST
。我需要得到它,GET
因为否则它会对我的观点造成一些可怕的扭曲的事情。