私は&と読むことを覚えていますが、データを変更する可能性のあるコントローラーの操作には[httppost]
しか使用しないでください(これらのソースは見つかりませんでした。データが変更されていない場合は、httpgetを使用していますか?
あなたが言いたいのは、データの検索だけを行う場合は、[httpget]
を使用する必要があります。
私は2つのコントローラアクションを持っています - データを検索するためにのみ使用され、変更するためには使用されません。
私はASP.NET MVC 5コントローラ二つ[httpget]s
これを用いて試みた:しかし
public ActionResult MyAction(Guid Id)
{
// Id is used to populate the form
}
// I would previously have placed [httppost] here
public ActionResult MyAction(MyObject myobj)
{
// myobj is posted back from the form - but no data is changed in the database, it's just a lookup
}
、私はこのエラーを取得する:
The current request for action 'MyAction' on controller type 'MyController' is ambiguous between the following action methods:
コンパイラが曖昧方法の問題点を有しています名前 - これを行うためのベストプラクティスは何ですか?
明示的に異なるアクションを指定するフォームを使用する必要がありますか。 (これは控えめで不気味だと思われます。その場合、[httppost]
はよりシンプルに、よりエレガントに、より簡潔に見えます)。
データが保存されていない状況で[httpget]
を使用する必要がありますか?
thx。
こんにちは - あなたは私の意見が不足していると思います。私は、データが変更されていない場合は、フォームをポストしてはならないと思っていました。代わりにフォームを取得し、データが変更された場所のみをポストするはずです。 – niico
いいえ、オブジェクト全体がポストバックされた場合、オブジェクトの一部が変更されているかどうかを確認するのはあなたの仕事です – Emil
@niico 'データが変更された場所のみをポストする'この時点でサーバは何か変更があったかどうかを知りません。あなたができることは、クライアント(JavaScript)でチェックしてPOSTを防ぐことですが、これはまったく別のトピックです – Uriil