在PartialView AJAX帖子上丢失视图

时间:2016-03-16 01:09:57

标签: c# ajax asp.net-mvc

目标:在MVC应用程序中有一个部分视图,该视图发布并返回部分呈现的任何视图。在这种情况下,View是Index.html,PartialView是_ConfigurationSetup.cshtml

现在的视图只是调用渲染部分的动作(我附加了一个模型):

@{ Html.RenderAction("LoadSiteConfigurationForm", "SiteConfiguration"); }

我使用渲染操作,因此我可以将模型传递给部分视图

public ActionResult LoadSiteConfigurationForm()
{
  SiteConfigurationModel model = new SiteConfigurationModel();
  model = _configRepository.GetConfiguration();
  return PartialView("_ConfigurationSetup", model);
}

在局部视图中,我有一个TinyMCE TextBox,我想做的就是将一个字符串传递给控制器​​,将其填入数据库,然后返回而不会丢失主视图(Index.cshtml)。我已经使用Ajax完成了这项任务,我似乎无法弄清楚我做错了什么。

Ajax表单(它包含在Bootstrap选项卡中,如果相关的话):

    <div id="SetWelcomeMessage" class="tab-pane fade active in">

        @using (Ajax.BeginForm("SetWelcomeMessage", "SiteConfiguration", new AjaxOptions
        {
            InsertionMode = InsertionMode.Replace,
            UpdateTargetId = "success",
            HttpMethod = "POST",
        }))
        {
            @Html.LabelFor(m => m.WelcomeMessage)
            @Html.EditorFor(m => m.WelcomeMessage)
            <input type="submit" value="Submit" class="btn btn-default btn-sm margin-top-10" />
        }
    </div>

最后 - 控制器

    [HttpPost]
    [ValidateInput(false)]
    public ActionResult SetWelcomeMessage(string welcomeMessage)
    {

        _configRepository.SetWelcomeMessage(welcomeMessage);
        return Content("Welcome message has been set!");

    }

我确定我正在向控制器进行操作,因为数据库正在更新。

当我返回内容时,我只是在屏幕上看到消息,没有别的。我最初让它返回局部视图,但返回了局部视图,所以我丢失了其他所有内容。

我开始工作的一件事是从部分传递索引视图,但这感觉不对,因为它们不在项目的同一位置。这会有效,只是感觉马虎,我想避免它。

一双新鲜的眼睛可以暗示什么?如果您需要更多信息,请与我们联系。

0 个答案:

没有答案