【问题标题】:Updating a partial view or redirecting to another view depending on the model state根据模型状态更新部分视图或重定向到另一个视图
【发布时间】:2019-06-08 09:43:48
【问题描述】:

我有一个模态弹出窗口,其中包含在我单击按钮后打开的表单。如果模型状态有效,我想被重定向到主页,否则如果它无效,我想用错误更新表单的内容。

我目前有下面的代码,我似乎找不到更好的东西。问题是如果模型是正确的,由于在 Ajax.BeginForm 函数中指定了 UpdateTargetId,主页会在模态弹出窗口中加载。

这代表我在模态弹出窗口正文中的内容:

@using (Ajax.BeginForm("CreateTask", "Accueil", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "partialCreateTask", InsertionMode = InsertionMode.Replace }))
{
...
}

这是控制器中调用的函数:

 public async Task<ActionResult> CreateTask([Bind(Include = "Titre,Description,Echeance")] T_Tache t_tache)
    {
        if (ModelState.IsValid)
        {
            var db = new My_DBEntities();

            t_tache.IdStatutTache = DataAccess_SELECT.GetIdOfTaskName(new Socfim_Plateforme_DBEntities(), "En cours");
            t_tache.UserCreation = DataAccess_STORE.CurrentUser(User.Identity.Name).IdUser;
            t_tache.DateCreation = DateTime.Now;
            t_tache.AffecteA = DataAccess_STORE.CurrentUser(User.Identity.Name).IdUser;

            db.T_Tache.Add(t_tache);
            await db.SaveChangesAsync();

            return RedirectToAction("Index");
        }

        return PartialView("_PartialCreateTask", t_tache);
    }

提前感谢您的帮助!

【问题讨论】:

    标签: c# ajax asp.net-mvc partial-views response.redirect


    【解决方案1】:

    你可以试试这个:

    public async Task<ActionResult> CreateTask([Bind(Include = "Titre,Description,Echeance")] T_Tache t_tache)
                    {
                        if (ModelState.IsValid)
                        {
                            var db = new My_DBEntities();
    
                            t_tache.IdStatutTache = DataAccess_SELECT.GetIdOfTaskName(new Socfim_Plateforme_DBEntities(), "En cours");
                            t_tache.UserCreation = DataAccess_STORE.CurrentUser(User.Identity.Name).IdUser;
                            t_tache.DateCreation = DateTime.Now;
                            t_tache.AffecteA = DataAccess_STORE.CurrentUser(User.Identity.Name).IdUser;
    
                            db.T_Tache.Add(t_tache);
                            await db.SaveChangesAsync();
    
                            return JavaScript("window.location = '/ControllerName/Index'");
                        }
    
                        return PartialView("_PartialCreateTask", t_tache);
                        
                    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 2014-01-25
      • 1970-01-01
      • 1970-01-01
      • 2016-04-02
      相关资源
      最近更新 更多