这是Roles的控制器,问题是我如何创建表单以插入名为" Admins"从形式或视图。提前谢谢
public ActionResult CreateRole()
{
string Output = "";
ApplicationDbContext db = new ApplicationDbContext();
RoleManager<IdentityRole> RoleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(db));
if (!RoleManager.RoleExists("Admins"))
{
IdentityResult Result = RoleManager.Create(new IdentityRole("Admins"));
if (Result.Succeeded)
{
Output = "the role created";
}
else
{
int ErrorCount = Result.Errors.Count();
Output = "Errors is: " + Result.Errors.ToList()[0];
}
}
else
{
Output = "the roles exist";
}
return Content(Output);
}
答案 0 :(得分:1)
右键单击ActionName(您的caes CreateRole
中的方法名称)
在ContextMenu中单击AddView
,这将导致出现对话框
指定您的需要并接受默认值。
在视图中添加以下代码
@using(Html.BeginForm()) {
<input type="submit" value="Create Role" />
}
你还必须在ActionName上面添加以下属性,比如这个
[HttpPost]
public ActionResult CreateRole()
现在当您从视图中单击“创建角色”按钮时,您的代码必须开始执行,您可以在方法的开头设置断点以进行调试
注意:另请注意,您必须添加get动作,它将显示视图本身 如果你还没有添加它,你必须编写以下代码
[ActionName("CreateRole")]
public ActionResult GetCreateRole()
{
return View();
}
此外,您还需要指定视图不使用任何模型,以使此代码正常工作。
如果您是ASP.NET MVC的新手,并且不了解它的基本知识,可以参考这个了解如何使用MVC的greate article
答案 1 :(得分:0)
首先,您需要创建一个这样的数据模型:
public class NewRole
{
public string Name { get; set; }
}
之后,您需要编辑控制器以发送NewRole模型并使用相同名称的post方法获取它。
public ActionResult CreateRole()
{
NewRole newRole = new NewRole();
return View(newRole);
}
[HttpPost]
public ActionResult CreateRole(NewRole newRole)
{
string Output = "";
ApplicationDbContext db = new ApplicationDbContext();
RoleManager<IdentityRole> RoleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(db));
if (!RoleManager.RoleExists("Admins"))
{
IdentityResult Result = RoleManager.Create(new IdentityRole(newRole.Name));
if (Result.Succeeded)
{
Output = "the role created";
}
else
{
int ErrorCount = Result.Errors.Count();
Output = "Errors is: " + Result.Errors.ToList()[0];
}
}
else
{
Output = "the roles exist";
}
if (Output == "")
{
ModelState.AddModelError(string.Empty, "tesssst");
return View(newRole);
}
else
{
return Redirect("Suscces url");
}
}
最后右键单击CreateRole方法并按下创建视图。
创建如下视图:
之后,您将看到一个简单的视图,显示您的错误消息。记得在你的视图中写一些css
@model WebApplication1.Models.NewRole
@{
ViewBag.Title = "CreateRole";
}
<h2>CreateRole</h2>
@using (Html.BeginForm())
{
@Html.LabelFor(x => x.Name, new { @class = "LoginText" })
@Html.TextBoxFor(x => x.Name, new { @class = "form-control" })
@Html.ValidationMessageFor(x => x.Name)
@Html.ValidationSummary()
<button type="submit">Save</button>
}