asp.Netは反射,汎用,静的手法を用いてフォーム値をModelに迅速に取得する方法を実現する
1896 ワード
本文の例はaspを述べた.Netは,反射,汎用,静的手法を用いてフォーム値をModelに迅速に取得する方法を実現する.皆さんの参考にしてください.具体的には以下の通りです.
これは初級で、簡単で、牛人は見なくてもいいです.でも実用的です.
プロジェクトではフォームを処理し、modelに値を割り当てる必要があります.煩わしい重複コードがあります.下のコードのように:
特に残業でこんなつまらないコードを書くときは...
反射,汎型,静的手法を用いて,この問題を容易に解決できた.言うのは少し深いようですが、実はとても簡単です.コードを参照してください.
だから静的な方法を使うだけで、主に図が便利で、newを使わない.後ですべてのフォームが簡単に処理でき、2行のコードができます.
構成は必要ありません.約束は最高の構成です.約定:フォーム・アイテムの名前は、エンティティ・クラスの属性名に対応することが望ましい(異なる場合は、反射方法は自分のルールに従って改造されます).フォームに値を割り当て、webformであればこのようにして、自分で書くことができて、原理の差は多くありません.
本文で述べたように皆さんにasp.Netプログラミングが役立ちます.
これは初級で、簡単で、牛人は見なくてもいいです.でも実用的です.
プロジェクトではフォームを処理し、modelに値を割り当てる必要があります.煩わしい重複コードがあります.下のコードのように:
News news = new News();
news.Id = int.Parse(Request.Form["Id"]);
news.Category = int.Parse(Request.Form["Category"]);
news.Title = Request.Form["Title"];
news.CreateTime = DateTime.Parse(Request.Form["CreateTime"]);
特に残業でこんなつまらないコードを書くときは...
反射,汎型,静的手法を用いて,この問題を容易に解決できた.言うのは少し深いようですが、実はとても簡単です.コードを参照してください.
public static class HenqPost where T: new()
{
///
/// Model
///
/// Model
/// model
/// Request
///
public static int GetPost(ref T t, NameValueCollection form)
{
int va=0;
Type type = t.GetType();//
PropertyInfo[] pi=type.GetProperties();//
foreach( PropertyInfo p in pi )
{
if (form[p.Name] != null)
{
try
{
p.SetValue(t, Convert.ChangeType(form[p.Name], p.PropertyType), null);// ,
va++;//
}
catch
{
}
}
}
return va;
}
}
だから静的な方法を使うだけで、主に図が便利で、newを使わない.後ですべてのフォームが簡単に処理でき、2行のコードができます.
News news = new News();
HenqPost.GetPost(ref news, Request.Form);
// Over 。
構成は必要ありません.約束は最高の構成です.約定:フォーム・アイテムの名前は、エンティティ・クラスの属性名に対応することが望ましい(異なる場合は、反射方法は自分のルールに従って改造されます).フォームに値を割り当て、webformであればこのようにして、自分で書くことができて、原理の差は多くありません.
本文で述べたように皆さんにasp.Netプログラミングが役立ちます.