2017-05-02 28 views
-1

複数のページを持つASP.net MVC Webサイトを構築しましたが、すべて動作します。しかし、数分(10〜30分)開いたままでページを投稿しようとすると、シーケンスに要素が含まれていないとのエラーメッセージが表示され、その他の作業が行われます。シーケンス要素がありません

フォームはかみそりのコードを使用して構築さ: @using (Html.BeginForm("Index", "Beoordeling", FormMethod.Post, new { @id = "beoordelingForm" })) { ... }

コントローラメソッドは次のようになります。いくつかの時間のために開いているページを離れるとき

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult Index([Bind(Include = allparameters")] object ObjectName) 
{ 
} 

再度こののみ発生します。 ページを開くときに使用するだけであれば、問題はありません。

この問題は、すべての自分のASP.NET MVC Webサイトで発生します。

私はこれがフォームの設定/デフォルト動作であると思いますが、誰かがエラーメッセージを表示する理由を説明してください。

Server Error in '/' Application. 

Sequence contains no elements Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InvalidOperationException: Sequence contains no elements

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  Stack Trace:

[InvalidOperationException: Sequence contains no elements]    System.Linq.Enumerable.First(IEnumerable`1 source) +264

+1

linqコールはどこですか? –

+0

私はこれがValidateAntiForgeryTokenのためかもしれないと思う、それはサーバー側で検証されるクッキーを作成する、私はあなたがクッキーが期限切れになったと言いた後に思う。 –

+0

このエラーは、私が知る限り、linq呼び出しがないようにフォームをポストする場合にのみ発生します。 @ DanielA.White。 – Sdaele

答えて

1

「シーケンスに要素が含まれていない」あなたは空のクエリセットにSingleFirstなどを呼び出すしようとしたときに発生します。このシナリオでは、いくつかのオプションがあります。

  1. あなたはAny、すなわちのようなものを使用して、まず、あなたのクエリセットがそれに何かを持っていることをテストすることができます。

    if (queryset.Any()) 
    { 
        ... 
    } 
    
  2. あなたが簡単に使用することができます
  3. try-catch例外から回復するために:あなたは使用することができます

    try 
    { 
        var foo = queryset.First(); 
    } 
    catch (InvalidOperationException) 
    { 
        // handle it 
    } 
    
  4. SingleOrDefault号、FirstOrDefault号などに記載されている。 OrDefaultバージョンは、クエリセットが空の場合に例外を発生させるのではなく、単にnullを返します。ただし、適切なヌルチェックを行ってから、この例外を代わりにNullReferenceExceptionの代わりに使用してください。

+0

こんにちはChris、不幸にも、それはオブジェクトに埋め込まれた返信を送信するページのポストで起こります。その後、オブジェクトをチェックしてデータベースに保存します。この問題は、ページをしばらく開いたままにすると発生します。空のクエリセットをチェックする場合、フォームが空のオブジェクトをポストする理由は何ですか? – Sdaele

+0

*誰が知っていますか?*なぜそれが起こっているのかを示すコードはありません。全体の視野と行動コードを確認する必要があります。 –

関連する問題