检查下面的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"];
}
}
}
答案 0 :(得分:1)
根据您的表单提交给控制器的内容,您的模型会有所不同。
我们假设您使用javac2
作为FormCollection
中的参数,如下所示:
SubmitAction
让我们进一步说你的表单有以下名称的控件,你从public ActionResult SubmitAction(FormCollection collection)
获取这些项目:
现在您想要使用模型。您所要做的就是创建一个具有这些属性的类,并根据您的喜好调用该类:
FormCollection
MVC DefaultBinder将获取您在表单中提交的项目,获取表单控件的public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
并查找name
类中的项,如果找到具有匹配名称的属性,它将设置Person
类的属性。它将对表单中的所有控件执行此操作。
您将更改操作的签名以接受模型作为参数,如下所示:
Person