【问题标题】:Can't get text from CKEditor MVC3无法从 CKEditor MVC3 获取文本
【发布时间】:2012-05-17 08:24:15
【问题描述】:

我是 Asp.Net MVC3 的新手,我正在尝试使用 CKEditor。但是无法获取我输入的文本,然后我推送提交。

我的观点:

<form method=post action="@Url.Action("Description")">
    <textarea class="ckeditor" id="editor1" rows="10" name="Details">@Resources.Resources.DescriptionSampleText</textarea>
    <input type="submit" />
</form>

那里的控制器我需要文本:

[HttpPost]
public ActionResult Description(string textdetails)
{
    //Doing something with the text
    return RedirectToAction("Create", "Project", new { text = textdetails});
}

我做错了什么?

【问题讨论】:

    标签: c# asp.net-mvc-3


    【解决方案1】:

    您的问题有三种解决方案。我将从直接解决它开始(两种方法),但是,在我看来这不是最好的方法。无论如何,稍后再详细介绍。

    ASP.NET MVC (3) 很多基于约定的工作。它会神奇地将值等从请求分配到参数等。当然,这些约定显然是基于参数的名称。你必须确保你的名字匹配(正如你现在可能想的那样,这将是一个很难维护的问题)。

    快速的解决方案是将视图中的 textarea 命名为与 HttpPost 操作的参数相同。您的视图代码如下所示:

    <form method=post action="@Url.Action("Description")">
        <textarea class="ckeditor" id="editor1" rows="10" name="Textdetails">@Resources.Resources.DescriptionSampleText</textarea>
        <input type="submit" />
    </form>
    

    这应该可行。注意:我现在没有自己测试这个,但是许多初学者指南也这样做,所以我认为这会起作用。无论如何,我真的不喜欢这个解决方案,因为它真的很难维护(重构等不会很容易)。

    第二种解决方案是使用FormCollection。您将其作为 HttpPost 操作的参数提供,然后您可以通过索引访问您的值。有关示例和更多信息,您可以查看此 SO 帖子:https://stackoverflow.com/a/5088493/578843

    最后一个解决方案(我更喜欢)是创建一个 ViewModel。我建议您阅读本指南 (http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/cs/examining-the-edit-methods-and-edit-view),了解如何正确编辑页面等。

    最后一件事,如果您想将 HTML 作为内容提交,您将不得不禁用 ASP.NET 的保存保护或向您的方法(或类)添加注释。请不要通常禁用保存守卫(它会检查 html 等的输入),仅在需要时使用注释禁用它。您可以在您的操作中将 ValidateInput 属性 (MSDN link) 设置为 false。示例:

    [HttpPost]
    [ValidateInput(false)]
    public ActionResult Description(string textdetails)
    {
        //Doing something with the text
        return RedirectToAction("Create", "Project", new { text = textdetails});
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-09
      • 2021-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多