【问题标题】:Inserting a User through ActionController using Entity Framework使用实体框架通过 ActionController 插入用户
【发布时间】:2018-07-15 01:56:28
【问题描述】:

我正在尝试在我的数据库中添加一个新的 User,但每次我按 提交 都会收到此错误

HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下 URL 并确保其拼写正确。 "

这是我的控制器:

public class CreateController : Controller
{
    // GET: Create
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult Create()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Create(User user)
    {
        using (var db = new UserEntities())
        {
            User newUser = new User();
            newUser.Name = user.Name;
            db.Users.Add(newUser);
            db.SaveChanges();
            return View();
        }
    }
}

这是我的看法:

@model FormulörModul.Models.User

<title>Create</title>

    @using (Html.BeginForm("Create", "CreateController", FormMethod.Post))
    {
        <label>Namn</label>
        @Html.TextBoxFor(m=>m.Name)
        @Html.ValidationMessageFor(m => m.Name)
        <input id="Submit1" type="submit" value="submit" />
    }

【问题讨论】:

    标签: asp.net-mvc entity-framework razor


    【解决方案1】:

    我认为错误在于对Html.BeginForm 的调用。按照 MVC 中的约定,当您命名控制器时,您只需将字符串命名为“Controller”之前的字符串。 IE。替换这个

    @using (Html.BeginForm("Create", "CreateController", FormMethod.Post))
    

    有了这个

    @using (Html.BeginForm("Create", "Create", FormMethod.Post))
    

    顺便说一句,“创建”对于控制器来说是一个非常糟糕的名字。我将其命名为“用户”。

    【讨论】:

    • 非常感谢,确实是这个问题!是的,我会记住这一点!我绑架了一些快速的东西,就像我在学校做的运动,早上 5 点哈!
    • @user1612725 很高兴我能帮上忙!
    • 将控制器名称视为名词,将您想要做的(动词)视为动作/方法。 UserController.Create().
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-07
    • 1970-01-01
    相关资源
    最近更新 更多