タグ付けされた質問 「viewstate」

7
ASP.NETでより詳細に制御するにはどうすればよいですか?
私は、非常にシンプルな「マイクロWebアプリ」を構築しようとしています。これを実現できれば、いくつかのスタックオーバーフローユーザーにとって興味があると思います。私はそれをバニラASP.NET 3.5(つまりMVCではない)の深さサイトの私のC#でホストしています。 フローは非常に簡単です。 ユーザーがすべてのパラメーターを指定していない(またはそれらのいずれかが無効である)URLでアプリを入力した場合、ユーザー入力コントロールを表示するだけです。(2つしかありません。) ユーザーがURLでアプリを入力するとし、すべての必要なパラメータを持って、私は結果を表示したいと入力コントロールを(彼らはパラメータを変更できるように) これは、自分で課した要件(設計と実装の混合)です。 投稿でPOSTではなくGETを使用したいので、ほとんどの場合、ユーザーは簡単にページをブックマークできます。 私はしていない URLがその上に余分なこまごまとし、提出後愚か探して終わるしたいです。メインURLと実際のパラメータのみを入力してください。 理想的には、JavaScriptをまったく必要としないようにしたいと思います。このアプリにはそれのための正当な理由はありません。 レンダリング中にコントロールにアクセスして値を設定できるようにしたい。特に、ASP.NETがこれを自動的に実行できない場合は、渡されたパラメーター値にコントロールのデフォルト値を設定できるようにしたい私にとって(他の制限内で)。 私はすべてのパラメーター検証を自分で行うことができて嬉しく、サーバー側のイベントの方法にそれほど必要ありません。ボタンなどにイベントをアタッチする代わりに、ページの読み込み時にすべてを設定するのは本当に簡単です。 これのほとんどは大丈夫ですが、ビューステートを完全に削除し、残りの便利な機能を維持する方法は見つかりませんでした。このブログ投稿の投稿を使用して、viewstateの実際の値を取得しないようにしましたが、最終的にはURLのパラメーターとして表示されるため、見苦しいようです。 ASP.NETフォームではなくプレーンHTMLフォームにした場合(つまり、テイクアウトrunat="server")、マジックビューステートを取得できませんが、プログラムからコントロールにアクセスできません。 私は可能性が ASP.NETのほとんどを無視し、XMLにLINQを使用してXML文書を構築し、実施することにより、このすべてを行いますIHttpHandler。しかし、それは少し低いレベルに感じます。 私の問題は、制約を緩和する(たとえば、POSTを使用し、余剰パラメーターを気にしない)かASP.NET MVCを使用することで解決できることに気付きましたが、私の要件は本当に無理ですか? たぶん、ASP.NETはこの種のアプリにスケールダウンしないのでしょうか?ただし、非常に可能性の高い代替案があります。私はただ愚かであり、それを実行するための完全に単純な方法があり、私がまだ見つけていないのです。 何か考えはありますか?(強大さがどのように落ちたのかについてのキューコメントなど。それは結構です-私はASP.NETの専門家であると主張したことがないことを願っています。真実はまったく反対です...)


6
Base-64文字配列の長さが無効です
タイトルが言うように、私は得ています: Base-64文字配列の長さが無効です。 私はここでこの問題について読みましたが、ViewStateが大きい場合はSQLに保存することをお勧めしているようです。大量のデータ収集を伴うウィザードを使用しているため、ViewStateが大きい可能性があります。しかし、「store-in-DB」ソリューションに目を向ける前に、誰かが見て、他のオプションがあるかどうか教えてくれるかもしれません。 以下の方法で配信用のメールを作成します。 public void SendEmailAddressVerificationEmail(string userName, string to) { string msg = "Please click on the link below or paste it into a browser to verify your email account.<BR><BR>" + "<a href=\"" + _configuration.RootURL + "Accounts/VerifyEmail.aspx?a=" + userName.Encrypt("verify") + "\">" + _configuration.RootURL + "Accounts/VerifyEmail.aspx?a=" + userName.Encrypt("verify") + "</a>"; …
93 c#  asp.net  viewstate  base64 

12
これの原因「Base-64 char配列の無効な長さ」
ここで続けることはほとんどありません。これをローカルで再現することはできませんが、ユーザーがエラーを受け取ると、自動メール例外通知が表示されます。 Invalid length for a Base-64 char array. at System.Convert.FromBase64String(String s) at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) at System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState) at System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState) at System.Web.UI.HiddenFieldPageStatePersister.Load() ビューステートに割り当てられているデータに問題があると思う傾向があります。 例えば: List<int> SelectedActionIDList = GetSelectedActionIDList(); ViewState["_SelectedActionIDList"] = SelectedActionIDList; エラーをローカルで再現することができなければ、エラーの原因を推測することは困難です。 誰かがこのエラーの経験を持っている場合、私はあなたが何を見つけたかを本当に知りたいです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.