Home > IT系 ( プログラム言語 , ASP ) > ASP.NET MVC2.0 にて対処法がわからないエラー

ASP.NET MVC2.0 にて対処法がわからないエラー

趣味の範囲ですが、.NETでもやってみようと久しぶりにVisualStudio2008をいじってみた。
VSでWebの開発というとWindowsアプリ開発者にWebを開発し易いようにいろいろ頑張って機能というかコントロールがたくさんで、すごいのは認めます。
でも、こうコントロールが多い=コントロールにデザインを指定するという形なので、どうみてもWebデザイナーさんと共同作業できないということで敬遠してました。

去年VSによるWeb開発にてMVCフレームワークが出たことは知ってましたがやっとそれを試せるときがきたというわけです。
このMVCのフレームワークを用いると通常開発で使用するコントロールは全く使用せずに、まぁある意味古い方式のWeb開発となり、デザイナさんとの共同作業にも向いているかもという発想です。
古い方式といっても考え方だけでいろいろと(いろいろで誤魔化していますw)新技術が盛り込まれているだろうということで・・・
古い方式というよりはjavaっぽいかな?

自分はMVC2をインストールしまして、@ITの「連載:ASP.NET MVC入門」(記事はMVC1だと思われる)の「第1回 ASP.NET MVCフレームワーク 基本のキ」を進めてみました。
興味があるものをやり始める時って何かとわからないことばかりですが面白い。
MVC2.0はまだ正式リリースしていませんが、勉強ということで採用しましたがいきなり問題発生!
最後まで進めたところで、動くんだけどヘンテコなエラーが・・・・「名前 '__o' は宣言されていません。
何ナノこれ?__oなんて使ってねぇーし
これは、MVCのバージョンに関わらす発生します。 ちなみに、言語がVBのときだけ。
対処法がわかりましたので、記事にしました。


当該行は <%=Html.ValidationSummary("以下のエラーが発生しました。")%> という感じで入力エラーがあった場合のエラーを表示する部分です。
んで、ネットで調べたのですが、日本語のページにはめぼしい解決方法はなく、外国語でもいくつかヒットしたけど翻訳しても意味不明。

しょうがなく、試行錯誤してみました。

まずは、ソースをペタリと。
<%@ Page Language="VB" Inherits="System.Web.Mvc.ViewPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ポスト・データの取得</title>
    <link rel="Stylesheet" type="text/css" href="../../Content/MyApp.css"/>
</head>
<body>
    <div>
    <% Using Html.BeginForm()%>
        <label for="name">名前:</label>
        <%=Html.TextBox("name")%>
        <%=Html.ValidationMessage("name", "*")%>
        <input type="submit" value="送信" />
    <% End Using%>
    <%=Html.ValidationSummary("以下のエラーが発生しました。")%>
    </div>
</body>
</html>
ソースココまで。のところがエラーの行

最初にやったのは、エラーの行を移動してみた。移動先は<% End Using%>のまえ。
エラーはなくなりました。ValidateSummaryはForm句の中(<% Using Html.BeginForm()%> ~ <% End Using%>)にないとダメなの?
        <input type="submit" value="送信" />
        <%=Html.ValidationSummary(" 以下のエラーが発生しました。")%>
    <% End Using%>
    <%=Html.ValidationSummary("以 下のエラーが発生しました。")%>
    </div>

次に試してみたのが、ValidateSummaryが悪さをしているのかを検証するため<%=""%>という行を<% End Using%>の後に追加してみた。
        <input type="submit" value="送信" />
        <% ' 検証のためコメントアウト=Html.ValidationSummary(" 以下のエラーが発生しました。")%>
    <% End Using%>
    <%=""%>
    </div>
これはエラーとなります。該当行はやはり<%=""%>のところ。
なんでだろー?ちなみに、このもForm句の中(<% Using Html.BeginForm()%> ~ <% End Using%>)に移動するとエラーとなりません。

ということは、<% Using Html.BeginForm()%>が怪しいということで<% Using Html.BeginForm()%>と<% End Using%>をコメントアウト、するとエラーは消えます。
なので、From句のHTMLヘルパー(<% Using Html.BeginForm()%> と <% End Using%>)を使用せずに直に<Form>タグを書いたらどうかなと試したところエラーは出ない。

結論
折角のHTMLヘルパー(MVCの機能の1つ)が台無しですね。
HTMLヘルパーでForm句を書いているときには、制約があるのかもしれない ということで、対策は不明のままです。
誰か教えてくれぇ~
まぁもしかしたら今後の勉強を進めていくうちに対策方法がわかるかも知れない、という期待をこめて頑張ってみようというところです。


Comment Form
%3c%69%6e%70%75%74%20%74%79%70%65%3d%22%68%69%64%64%65%6e%22%20%6e%61%6d%65%3d%22%6e%70%5f%70%72%6f%74%65%63%74%62%79%6d%64%35%22%20%76%61%6c%75%65%3d%22%39%61%38%66%32%33%37%64%30%64%61%30%66%36%62%38%31%37%35%32%35%30%37%39%32%38%35%39%33%34%39%33%22%3e %3c%69%6e%70%75%74%20%74%79%70%65%3d%22%68%69%64%64%65%6e%22%20%6e%61%6d%65%3d%22%6e%70%5f%70%72%6f%74%65%63%74%62%79%6d%64%35%5f%68%61%73%68%22%20%76%61%6c%75%65%3d%22%32%64%37%62%35%65%39%37%38%64%35%63%64%32%39%62%66%61%30%37%30%36%34%61%62%65%31%63%38%38%34%65%22%3e

Trackback: 0

TrackBack URL for this entry
http://www.furuken.net/blog/action.php?action=plugin&name=TrackBack&tb_id=339
Listed below are links to weblogs that reference
ASP.NET MVC2.0 にて対処法がわからないエラー from ぼそぼそ

Home > IT系 ( プログラム言語 , ASP ) > ASP.NET MVC2.0 にて対処法がわからないエラー

Page Top