![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
ASP.NET web アプリケーションでの入力検証に関して質問です
当方.NET、オブジェクト指向言語初心者です
検討違いなことを質問しているかもしれませんが
回答いただけたら幸いです
以下を使用しています
visual studio 2008
.NET Framework 3.5
C#
新規プロジェクト作成時に
ASP.NET web アプリケーションを選択し、
(ASP.NET MVC等ではなく)
TextBox
Button
を配置し
Buttonを押下した時に
TextBoxに何も入力されていなかった場合
エラーメッセージを表示するような入力検証を
System.ComponentModel.DataAnnotations
を用いて行いたいと考えています
(RequiredFieldValidatorではなく)
Q1
新規プロジェクト作成時にASP.NET web アプリケーションを選択した場合
System.ComponentModel.DataAnnotations
を用いて入力検証はおこなえるのでしょうか?
(webで検索したところASP.NET MVCやSilverlightのサンプルはあったのですが・・・)
Q2
Q1がYESの場合
具体的にはどう実装すればよいのでしょうか?
以下にソースを記載します
■Defaoult.Aspx
<%@ Page Title="ホーム ページ" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="WebApplication2._Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="TextBox1" ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
<br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
</asp:Content>
■Default.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel.DataAnnotations; //←※
namespace WebApplication2
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
}
}
}
※
参照の追加で
System.ComponentModel.DataAnnotations
を追加して
usingで定義するところまでは検討がつきました
以上、宜しくお願い致します
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
3.5だとDynamicDataのプロジェクトの中でないとDataAnnotationsによる検証は使えないですね。
4になると参考URLのような方法も使えるように拡張されているんですけどね。
参考URL:http://dotnetfan.org/blogs/dotnetfanblog/archive …
No.1
- 回答日時:
System.ComponentModel.DataAnnotationsは、ASP.NET WebApplication/WebSiteでは(ほぼ)使えません。
たしかEntity Frameworkと同時に実装されたコンポーンネントで、エンティティオブジェクトを使ったリアルタイム値検証に用いられ、WindowsFormやWPF、SylverlightRuntimeでも、3から?実装されたと思います。
ASP.NET WebFormやWebSiteでは、入力値を自動供給する「モデルバインダ」の概念がなくPostBackやViewState、サーバ/クライアント検証(JavaScript)という仕組み、検証結果の通知など全部が特殊なので、そのままでは使用できません。
その周辺を全部自分で実装する(ASP.NET複雑すぎ。。自分には無理)か、海外のフレームワーク探すか、諦めてMVC使う必要があります。
ASP.NET MVC1になってWebベースの「モデルバインダ」が実装されたため、新しいSystem.ComponentModel.DataAnnotationsがオプションで出て、MVC2になってようやく完成形として標準実装なったんですね。
ASP.NET MVCではフォーム入力値を自動で「エンティティオブジェクト」に格納する仕組み(モデルバインダ)があるため、受け側のメンバの属性を付加したクラスに叩き込み、自動で検証結果をサーバサイド、クライアントサイドに表示することができます。
(自分でカスタム検証追加もOK)
このあたりの仕組みはJAVAやRubyのフレームワークも全く同じです。
やっぱ時代はMVCかと。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript html javascriptにてWeb SQLを操作したい。 2 2022/12/16 17:43
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- Microsoft ASP ASP.NETや.NET、C#とかVBとか 2 2022/05/16 21:16
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SqlDataSource SelectCommand ...
-
ページの更新内容が反映されない。
-
時々処理が呼ばれない
-
エラー 'ASP 0115'
-
C# try-catch でcatchに飛ばす方法
-
ASP.NETのrepeaterかSqlDataRea...
-
ASPでトランザクションをかける...
-
JavaScriptで取得した値をASPで...
-
ASPでタブのように見せる方法
-
エラー 'ASP 0115' について
-
オブジェクト生成エラー
-
ACCESSのAutoKeysマクロでアク...
-
IIS7.5の設定の仕方
-
request.Servervariables("SERV...
-
CreateObject("Excel.Applicati...
-
PIC 外部クロックの使用について
-
オラクル接続をopenしようとす...
-
ODBC経由でオラクルに接続
-
fopenでエラーとなる
-
拡張子.aspって作成するの?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Response.Redirectで引数2つの...
-
ASPからASPを呼び出す方法
-
GridView表示の高速化
-
SqlDataSource SelectCommand ...
-
隠しフィールドをVBScriptでの...
-
GridViewからテンプレートフィ...
-
ページの更新内容が反映されない。
-
asp.net でのドロップダウンリ...
-
ASPへのデータの受け渡しについて
-
<ASP.NET>DataGridでOnSelected...
-
UpdatePanel と GridViewについ...
-
AutoPostBackにしているが、う...
-
Tableを動的に増やしたい。
-
ビデオテープに貼るラベルシー...
-
ASPでテキストファイルにデータ...
-
1つのファイルの中身が多くな...
-
Panelを重ねる方法
-
DropDownListの表示に列連結し...
-
GETで渡されたパラメータを遷移...
-
【ASP.NET】 ログインコントロ...
おすすめ情報