11

テキスト ボックスに 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
}

問題は、textForLabelLanguageparam が常に null であることです。

これは、フォームを送信するときに MVC に渡す必要があるために発生$('#textForLabelLanguage').code();しますが、その方法がわかりません!

問題を解決するにはどうすればよいですか?

4

3 に答える 3

15

問題の解決策を見つけました。これは、コントローラーに正しい情報を取得させる方法です。

<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 を許可しているために発生します。しかし、これは別の質問の問題です。

于 2015-04-10T13:21:14.743 に答える
8

使ってください[AllowHTML]

ASP.NETでの MSDN Request Validationに関する良い記事があります。

「特定のプロパティのリクエスト検証を無効にするには、プロパティ定義を AllowHtml 属性でマークします。」

[AllowHtml]
public string Prop1 { get;  set; }
于 2017-02-12T01:38:55.453 に答える
3

以前に投稿されたものと同様に、HTML ヘルパーを使用できます

@HTML.TextAreaFor( m=> m.text, new {@id = "textFor*Model*"})

それ以外の<textarea>

于 2016-06-07T17:19:39.813 に答える