最近弄了一個相似於QQ空間的留言問題,弄得我一個頭兩個大,一開始我弄了能夠回覆的功能,結果,頂部的那條內容能夠回覆,可是接下來的留言就不能夠回覆了,覺得是本身後臺的問題,結果一直在改後臺,改了半天,竟然是js的問題。javascript
這個務必要記錄下來,之後遇到這種問題就好辦了!!!css
C# MVC View前臺:html
<script>java
//點擊回覆按鈕, 顯示對應的回答框 id==對應的文章Id
function onReply(id) {
//隱藏全部的回覆框
$(".reply_text").hide();
//隱藏全部的提交按鈕
$(".reply_btn").hide();
//$(("#replytxt_" + id)) == $("#replytxt_20") 20就是傳入的文章Id
//顯示對應的回覆框和提交按鈕
$(("#replytxt_" + id)).css({"display":"block"});
$(("#replybtn_" + id)).css({ "display": "block" });
}
//點擊提交按鈕_id==對應的文章Id
function onReplysub(_id) {
//文章id
var id = _id;
//獲取回覆內容
var ans = $(("#replytxt_" + id)).val();
//去調用後臺,執行操做
$.ajax({
type: "POST",
url: '/Default/AddReply',
cache: true,
async: false,
data: {
ID: id,
Answer: ans
},
success: function (data) {
alert("回覆成功!");
//回覆成功刷新頁面
window.location.reload();
},
error: function () {
alert('回覆失敗!');
}
});
}ajax
</script>async
html/csside
<ul>
<li>
<div class="reply">
<button type="button" onclick="onReply(@qa.Id)">回覆</button>
</div>
</li>
<li class="reply_list">
<textarea style="width:300px; height:100px; border-radius:4px;display:none;" placeholder="回覆 @qa.Quizzer :" id="replytxt_@qa.Id" class="reply_text"></textarea>
</li>
<li>
<input type="text" id="quesid_@qa.Id" value="@qa.Id" hidden="hidden" />
</li>學習
<li>
<div class="reply-content">
<a href="javascript:;" id="replybtn_@qa.Id" onclick="onReplysub(@qa.Id)" style="display:none;" class="reply_btn">提交</a>
</div>
</li>
</ul>ui
Controller 控制器代碼:url
/// <summary>
/// 回覆reply
/// </summary>
/// <param name="answer"></param>
[HttpPost]
public void AddReply(string answer,int Id)
{
QAndA qanda = db.QandAs.FirstOrDefault(q=>q.Id==Id);
qanda.Answer = answer;
qanda.AnswerTime = DateTime.Now;
db.SaveChanges();
}
或許大家有更好的方法建議的話,互相學習借鑑……