Summernote 和 MVC c# 中的表单提交
Posted
技术标签:
【中文标题】Summernote 和 MVC c# 中的表单提交【英文标题】:Summernote and form submission in MVC c# 【发布时间】:2015-06-14 22:29:28 【问题描述】:我正在为文本框使用 Summernote 插件: http://summernote.org/#/getting-started#basic-api
这是我使用summmernote的表格:
<div class="modal-body" style="max-height: 600px">
@using (html.BeginForm())
@Html.ValidationSummary(true)
<fieldset class="form-horizontal">
<div id="textForLabelLanguage"></div>
<button type="submit" class="btn btn-primary">Save changes</button>
@Html.ActionLink("Cancel", "Index", null, new @class = "btn " )
</fieldset>
</div>
<script type="text/javascript">
$(document).ready(function ()
$('#textForLabelLanguage').summernote();
);
</script>
现在,在我的控制器中,这是我拥有的代码:
public ActionResult Create(UserInfo newInfo , [Bind(Prefix = "textForLabelLanguage")] string textForLabelLanguage)
//logic here
现在的问题是textForLabelLanguage
参数始终为空。
发生这种情况是因为我在提交表单时必须将 $('#textForLabelLanguage').code();
传递给 MVC,但我不知道该怎么做!
我该如何解决我的问题?
【问题讨论】:
包含 html 的表单元素在哪里? 就在javascript之前。那就是使用 mvc 表单生成的 HTML。 我是说输入框? @DanielA.White:``。就是这个。然后 JS 完成剩下的工作。这一切都在summernote文档中:D 那不是输入框 【参考方案1】:我找到了解决问题的方法。这就是我让控制器获取正确信息的方式:
<div class="modal-body" style="max-height: 600px">
@using (Html.BeginForm())
@Html.ValidationSummary(true)
<fieldset class="form-horizontal">
<textarea name="textForLabelLanguage" id="textForLabelLanguage" />
<button type="submit" class="btn btn-primary">Save changes</button>
@Html.ActionLink("Cancel", "Index", null, new @class = "btn " )
</fieldset>
</div>
<script type="text/javascript">
$(document).ready(function ()
$('#textForLabelLanguage').summernote();
);
</script>
基本上,如果我使用带有名称的文本区域而不是输入或其他任何东西,它就可以工作!
但是,请注意,即使此解决方案有效,我也会在控制器中收到错误消息:
从客户端检测到有潜在危险的 Request.Form 值
发生这种情况是因为我允许使用 HTML。但这是另一个问题的问题!
【讨论】:
仅供参考[ValidateInput(false)]
允许将 HTML 传递给控制器操作【参考方案2】:
请使用[AllowHTML]
MSDN 上有一篇不错的文章 Request Validation in ASP.NET
"要禁用特定属性的请求验证,请使用 AllowHtml 属性标记属性定义:"
[AllowHtml]
public string Prop1 get; set;
【讨论】:
【参考方案3】:类似于之前发布的内容,您可以使用 HTML 帮助器
@HTML.TextAreaFor( m=> m.text, new @id = "textFor*Model*")
而不是<textarea>
【讨论】:
以上是关于Summernote 和 MVC c# 中的表单提交的主要内容,如果未能解决你的问题,请参考以下文章