我正在尝试将我的部分视图中的html转换为主视图中带有id“searchpage”的div标记。但是,当我按照此答案中的语法How to append an Html.Action to the jquery时,我在chrome开发人员工具中收到错误,
mAuth=FirebaseAuth.getInstance();
mdatabase= FirebaseDatabase.getInstance().getReference().child("Department");
mdatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<String> Department = (ArrayList<String>) dataSnapshot.getValue();
DepartmentLIST=Department.toArray(new String[Department.size()]);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(CheckUpdate.this,databaseError.getMessage(),Toast.LENGTH_LONG).show();
}
});
setListAdapter(new ArrayAdapter(this,
android.R.layout.simple_list_item_1,DepartmentLIST));
}
代码是
Uncaught SyntaxError: Invalid or unexpected token
错误在$("#searchbutton").click(function () {
$("#searchpage").html('@Html.Action("Search", "Employees")');
});
专门突出显示。
答案 0 :(得分:2)
我建议使用Ajax调用,并加载响应:
$("#searchbutton").click(function () {
var url = '@Url.Action("Search", "Employees")';
$.get(url)
.done(function(response, status, jqxhr){
$("#searchpage").html(response);
});
});
如果要加载静态表单,请将其加载到模板脚本中并根据需要进行复制:
<script type="text/template" id="search-template">
@Html.Action("Search", "Employees")
</script>
脚本中的某处:
$("#searchbutton").click(function () {
var template = $('#search-template').clone().html();
$("#searchpage").html(template);
});
我假设您看到的错误是因为您的HTML已格式化,因此您认为正在构建的“字符串”在生成的标记中实际上无效 - 它会有新行,这是一个问题JavaScript字符串。
答案 1 :(得分:1)
@Url.Action:
只返回一个网址。
@Html.Action:
调用指定的控制器名称和操作,并返回为html字符串
你不能使用$("#yourid").html('@Html.Action()')
,因为这会执行Html.Action并返回数据,但jquery不能将其视为变量而无法按预期解释它。
实现目标有两个选择:
首先使用带有@UrlAction或字符串url的jquery ajax,然后将结果值解析为目标div。
$('#searchbutton').on('click', function() {
$("#target").load("/Employees/Search");
});
第二个是使用jquery加载函数将模型数据的局部视图结果导入目标div。
// jquery
$('#searchbutton').on('click', function() {
var $detailDiv = $('#searchpage');
var url = '@Url.Action("Search", "Employees")';
$.get(url, function(data) {
$detailsDiv.replaceWith(data);
});
});
// controller
public ActionResult Search()
{
var model = GetModel(); // your function to get your model
return PartialView( "Search", model );
}
// html
<div id="searchpage">
<!-- ...content... -->
</div>