为现有控制器创建模型

时间:2017-06-24 17:13:32

标签: c# asp.net-mvc asp.net-mvc-4

检查下面的MVC代码。我已创建此控制器,但我想添加一个带有此控制器的模型来检索用户电子邮件列表和ID。但问题是所有在线教程都说在创建控制器期间创建模型,因为我已经创建了控制器,我现在必须手动创建模型。请告诉我任何解决方案如何为此控制器创建模型?还请注意我必须从" SubmitAction"访问该模型。该控制器上的方法

    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 <mailgun@sandboxc8436ac0db054b45986303cb8fd3944a.mailgun.org>");
                request.AddParameter("to", "lia@gmail.com");
                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 个答案:

答案 0 :(得分:1)

根据您的表单提交给控制器的内容,您的模型会有所不同。

我们假设您使用javac2作为FormCollection中的参数,如下所示:

SubmitAction

让我们进一步说你的表单有以下名称的控件,你从public ActionResult SubmitAction(FormCollection collection) 获取这些项目:

  1. 名称
  2. 年龄
  3. 现在您想要使用模型。您所要做的就是创建一个具有这些属性的类,并根据您的喜好调用该类:

    FormCollection

    MVC DefaultBinder将获取您在表单中提交的项目,获取表单控件的public class Person { public string Name { get; set; } public int Age { get; set; } } 并查找name类中的项,如果找到具有匹配名称的属性,它将设置Person类的属性。它将对表单中的所有控件执行此操作。

    您将更改操作的签名以接受模型作为参数,如下所示:

    Person