16

asp.net mvc2 でシーケンス番号を作成したい..

次に、番号は から開始する必要があり{ 0 to 1000}ます。私は次のように試しました、

 var seq = Enumerable.Range(1, 1000);
        ViewData["OrderNo"] = seq;

ビューで:

 <%:Html.Hidden("OrderNo") %>
            <%:ViewData["OrderNo"] %>  

私の結果は

System.Linq.Enumerable+<RangeIterator>d__b8

しかし、ビューで値を取得すると機能しません... 連番を生成するにはどうすればよいですか?

4

2 に答える 2

8

何を意味するのか、何を失敗と見なすのかは不明ですが、Enumerable.Rangeのパラメーターはstartandであり、 and ではありcountません。startend

0 から始まり 1000 で終わる数値を生成したい場合は、次のように記述する必要があります。

Enumerable.Range(0,1001);

別の問題がある場合 (たとえば、シーケンスがユーザー呼び出しの間、またはユーザーからユーザーへ、またはその他のもので持続しない場合)、具体的に説明する必要があります。

おそらく、ViewData に保存した IEnumerable が View で期待どおりに永続化されないということでしょうか? これは、Range が IEnumerable を実装するオブジェクトを返し、遅延実行を使用して要求された値を生成するためです。または ToArray()で列挙を強制しない限りfor、数値はまったく生成されません。オブジェクトをどこかに保存しても、列挙は強制されません。

于 2013-11-13T09:25:47.683 に答える