2017-06-24 7 views
1

MVCコードを確認してください。私はこのコントローラを作成しましたが、このコントローラを持つモデルをRetrieveのユーザーの電子メールリストとIDに追加したいと思います。しかし、問題はすべてオンラインのチュートリアルでは、私はすでにコントローラを作成して以来、コントローラを作成中にモデルを作成するということです。私は手動でモデルを作成する必要があります。私はどのように私はこのコントローラのモデルを作成することができますアドバイス私の解決策を教えてください?また、私は自分のフォームがコントローラに提出された内容に応じて、このコントローラ既存コントローラのモデルを作成

namespace WebApplication2.Controllers 
    { 
     [AdministratorOnlyPermission] 
     public class EmailCampaignController : Controller 
     { 

      // GET: Email Campaign 
      public ActionResult Index() 
      { 
       return View(); 
      } 

      public static IRestResponse SendSimpleMessage() 
      { 
       RestClient client = new RestClient(); 
       client.BaseUrl = new Uri("https://api.mailgun.net/v3"); 
       client.Authenticator = 
        new HttpBasicAuthenticator("api", 
               "key-34d6fd732e9ba43a2fakeeeeeee4b60c"); 
       RestRequest request = new RestRequest(); 
       request.AddParameter("domain", "sandboxc8436ac0db054b45986303cb8fd3944a.mailgun.org", ParameterType.UrlSegment); 
       request.Resource = "{domain}/messages"; 
       request.AddParameter("from", "Excited User <[email protected]sandboxc8436ac0db054b45986303cb8fd3944a.mailgun.org>"); 
       request.AddParameter("to", "[email protected]"); 
       request.AddParameter("subject", "Hello"); 
       request.AddParameter("text", "Testing some Mailgun awesomness!"); 
       request.Method = Method.POST; 
       return client.Execute(request); 
      } 



      [HttpPost] 
      public ActionResult SubmitAction(FormCollection collection) 
      { 
       //var userType = Request["userType"]; 
       //var emailContent = Request["emailContent"]; 
       //SendSimpleMessage(); 
       //ViewBag.Message = "Hello " + Request["userType"]; 

      } 

     } 
    } 

答えて

1

の「SubmitAction」方式から、そのモデルにアクセスする必要がありますのでご注意ください、あなたのモデルが異なります。

さんがあなたのSubmitAction以下のようにパラメータとしてFormCollectionを使用していたとしましょう:

public ActionResult SubmitAction(FormCollection collection) 

との、さらにフォームには、次の名前のコントロールを持っていたとしましょう、あなたはFormCollectionからこれらのアイテムを取得した。

  1. 名前
  2. 年齢

これで、代わりにモデルを使用します。あなたがしなければならないのは、これらのプロパティを持つクラスを作成し、あなたが好きなクラスを呼び出すことです:

public class Person 
{ 
    public string Name { get; set; } 
    public int Age { get; set; } 
} 

MVC DefaultBinderがあなたの形で提出されている項目がかかります、フォームコントロールのnameを取りますPersonクラスのものを探します。名前が一致するプロパティーを見つけたらPersonクラスのプロパティーを設定します。これは、フォーム内のすべてのコントロールに対して行います。

あなたは、このようなパラメータとしてモデルを受け入れるために、アクションの署名を変更します:

public ActionResult SubmitAction(Person person) 
+0

しかし、「名前」と「年齢」列の名前です。エンティティフレームワークがテーブル名をどのように選択するか? "person"はテーブル名ですか?または何? –

+0

@TeenaR私が言ったように、あなたは何でもしたいクラスを呼び出すことができます。 EFについて言及したことはありません。あなたは 'Person'のようなアクションに入ったものを取り出し、そこからデータベースに追加したいものを作成します。 – CodingYoshi

+0

申し訳ありませんが悪い質問です。私はどのテーブルの操作がどのようにシステムがそれを知っている起こる必要があります上で言うか?私はここで混乱している。仮定:私は2つの異なるテーブルを持っている "年齢"と呼ばれる同じ列が含まれているシステムは、テーブルについてそれは混同されません? –

関連する問題