【发布时间】:2020-01-28 16:59:18
【问题描述】:
我在 .cs 文件中使用 TreeView 填充文件夹结构,并在 view.cshtml 中呈现它。当单击一个项目时,我调用一个 js 函数,该函数对 web api 进行 ajax 调用,获取文件内容并应该在 TextArea 或 Div 中显示结果。
结果从web api返回,并在textarea中显示并消失。我猜它正在刷新页面。但我不知道如何防止它。我以前做过类似的事情,没有表现得如此。我确定我错过了什么,但我说不出我错过了什么。
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
<form>
<div style="width: 100%; overflow: hidden;">
<div style="width: 600px; float: left;">
<ul>
@foreach (var node in Model.Nodes[0].ChildNodes)
{
<li>@node.Text</li>
<ul>
@foreach (var f in node.ChildNodes)
{
<li><a href="" onclick="getLog('@f.Value')">@f.Text</a></li>
}
</ul>
}
</ul>
</div>
<div id="divLog" style="margin-left: 620px;overflow:auto;"><textarea id="txtLog" rows="10" cols="50"></textarea></div>
</div>
</form>
<script>
function getLog(fileref) {
var baseURL = window.location.protocol + '//' + window.location.host + '@Url.Content("~")';
var apiUrl = baseURL + "/api/logapi?fileref=" + fileref;
document.getElementById("txtLog").innerText = "";
$(document).ready(function () {
$.ajax({
url: apiUrl,
type: "GET",
success: function (data, textStatus, jqXHR) {
document.getElementById("txtLog").innerText = data;
//document.getElementById("txtLog").innerHTML = data;
//$("#txtLog").val(data);
alert(data);
}
});
});
}
</script>
【问题讨论】:
-
在单击时调用的函数调用内部准备好文档没有任何意义。取消点击动作。
-
'document.ready' 是我尝试和错误的努力之一。我删除了它。
标签: ajax asp.net-web-api razor