ASP .net MVC在提交时表示满足null

时间:2013-11-17 22:07:42

标签: c# asp.net-mvc-4 contenteditable

我有一个令人满意的表单,我正在尝试从一个将由Action方法处理的表单进行POST,但我的POST数据为空。

我首先定义我的表单:

<form class="composer-form" name="input" action="~/Articles/ResearchArticles/ArticleSubmit" method="post" onsubmit="return SubmitForm()">
                    @RenderPage("text-editor-partial.cshtml")
                    <textarea id="hidden_text_area" style="display: none"></textarea>
                    <div style="padding-left: 2em">
                        <input class="btn" type="submit" value="Submit" style="width: 200px">
                    </div>

如上面的代码所示,SubmitForm函数将处理复制可编辑内容的值,如下所示:

function SubmitForm() {
    var clr = confirm("Are you sure you want to submit the article?");
    if (clr == true) {
        var hta = document.getElementById("hidden_text_area");
        var content_html = document.getElementById("editor").innerHTML;
        hta.value = content_html;
        return true;
    }
    else {
        return false;
    }
}

代码成功从contenteditable div中获取值并将其放入隐藏文本值字段中。 所以现在我有一个行动,我从这里得到:

[HttpPost]
public ActionResult ArticleSubmit(string postData)
{
  return new EmptyResult(); //postData is NULL... why?
}

设置断点显示postData为null ...我的愚蠢错误是什么:)?

谢谢!

2 个答案:

答案 0 :(得分:0)

可能的解决方案是使用隐藏的input代替textarea,因为它没有value,实际上内容存储在text中。

所以在HTML中:

<input id="hidden_input" style="display: none" name="data" />

在控制器中:

public ActionResult ArticleSubmit(string data)
{

}

答案 1 :(得分:0)

您的textarea需要name,否则当您提交表单时,模型活页夹不会获取其值:

<textarea id="hidden_text_area" style="display: none" name="postData"></textarea>