React js-使用文本框值和c#

React js-使用文本框值和c#,c#,reactjs,textbox,C#,Reactjs,Textbox,此时,作者和文本值是正确的。但是在“xhr.send(data)”中,当它点击C#API控制器方法时,这些值已经转换为文本“[object HTMLInputElement]” 如果你已经读到这里,谢谢你…;-) 这两个问题都解决了同一个问题。您必须使用输入的值属性,而不是DOM节点本身 所以你应该做的是: handleCommentSubmit: function(comment) { var data = new FormData(); data.append

此时,作者和文本值是正确的。但是在“xhr.send(data)”中,当它点击C#API控制器方法时,这些值已经转换为文本“[object HTMLInputElement]”


如果你已经读到这里,谢谢你…;-)

这两个问题都解决了同一个问题。您必须使用
输入
属性,而不是DOM节点本身

所以你应该做的是:

handleCommentSubmit: function(comment) {
        var data = new FormData();
        data.append('Author', comment.Author);
        data.append('Text', comment.Text);

        var xhr = new XMLHttpRequest();
        xhr.open('post', this.props.submitUrl, true);
        xhr.onload=function() {
            this.loadCommentsFromServer();
        }.bind(this);
        xhr.send(data);
此外,您还可以通过再次覆盖此值来清除输入:

this.props.onCommentSubmit({Author: author.value, Text: text.value});
在我看来,更好、更具反应性的方法是使用受控输入。定义状态变量
author
text
,并使用
onChange
函数将其绑定。这样,您还可以在输入过程中进行一些验证

见工作示例:


还有

请编辑您的帖子,删除您的所有大写文字。哈哈,我这样做是为了“尝试”并使其更具可读性。我将按原样离开,但在以后的帖子中不会这样做。谢谢,很有效,谢谢。此外,我将重构以使用受控输入。谢谢
handleCommentSubmit: function(comment) {
        var data = new FormData();
        data.append('Author', comment.Author);
        data.append('Text', comment.Text);

        var xhr = new XMLHttpRequest();
        xhr.open('post', this.props.submitUrl, true);
        xhr.onload=function() {
            this.loadCommentsFromServer();
        }.bind(this);
        xhr.send(data);
this.props.onCommentSubmit({Author: author.value, Text: text.value});
author.value = '';
text.value = '';