我有一个(我认为是愚蠢的)问题.
我有一个控制器,索引方法,它的视图有一些JQuery函数.
它工作正常,JQuery方法工作得很好.
我使用的链接是
http://localhost:54209/TestInput/
Run Code Online (Sandbox Code Playgroud)
但如果我放
http://localhost:54209/TestInput/Index
Run Code Online (Sandbox Code Playgroud)
JQuery函数不起作用.据我所知,他们应该采取完全相同的行动.
这是我唯一改变的事情
我非常感谢你的帮助.在过去的几个小时里,这让我发疯了!
例如,这是我的脚本
<script>
$(document).ready(function() {
$('select#testCategoriesUniqueId').change(function() {
var testCategory = $(this).val();
$.ajaxSetup({ cache: false });
alert ("AAA");
$.ajax({
url: "TestInput/listTestCases/" + testCategory,
dataType: "json",
type: 'post',
success: function(data) {
$("#testCasesUniqueId").removeOption(/./);
for (var i = 0; i < data.length; i++) {
var val = data[i].Value;
var text = data[i].Text;
$("#testCasesUniqueId").addOption(val, text, false);
}
}
});
});
});
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,我都会收到警报,但在第二个链接中,我无法呼叫控制器.
它不会调用我的控制器的listTestCases方法.
更新:
所以我试图使用参数而不是确切的链接,我仍然有问题,我有两个来源,并得到一个差异,唯一的区别是
<form name="aspnetForm" method="post" action="Index" id="aspnetForm">
Run Code Online (Sandbox Code Playgroud)
与
<form name="aspnetForm" method="post" action="TestInput" id="aspnetForm"> …Run Code Online (Sandbox Code Playgroud) 我正在尝试为下拉列表设置所选值.
在控制器我有
ViewData["productType"] = new SelectList(myDropDownList);
Run Code Online (Sandbox Code Playgroud)
并在视图中:
<%= Html.DropDownList("productType", ViewData["productType"] as SelectList, "defaultValue")%>
Run Code Online (Sandbox Code Playgroud)
到目前为止很好,但问题是现在我的下拉列表中有两次"defaultValue".所以我在dropdownlist中包含了所有值,包括"defaultValue".但是这段代码会将"defaultValue"添加为第一个元素.我看到了它的两个样本.
我喜欢将选定的valiue设置为"defaultValue"而不添加两次.
我试过了
ViewData["productType"] = new SelectList(myDropDownList, "defaultValue" );
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
谁能告诉我该怎么办?
我正在浏览关于线程的oracle java教程,我看到了这个例子
src:http://docs.oracle.com/javase/tutorial/essential/concurrency/interrupt.html
如果一个线程长时间没有调用抛出InterruptedException的方法怎么办?然后它必须定期调用Thread.interrupted,如果收到中断,则返回true.例如:
for (int i = 0; i < inputs.length; i++) {
heavyCrunch(inputs[i]);
if (Thread.interrupted()) {
// We've been interrupted: no more crunching.
return;
}
Run Code Online (Sandbox Code Playgroud)
该教程补充说: 中断机制是使用称为中断状态的内部标志实现的.调用Thread.interrupt设置此标志.当线程通过调用静态方法Thread.interrupted来检查中断时,将清除中断状态.非静态isInterrupted方法,由一个线程用于查询另一个线程的中断状态,不会更改中断状态标志.
按照惯例,任何通过抛出InterruptedException退出的方法都会在执行此操作时清除中断状态.但是,通过另一个调用中断的线程,总是可以立即再次设置中断状态.
现在我很困惑.它什么时候发生?如果有中断,那么线程是否应该收到InterruptedException?
有人可能会使用这些检查代码的方法吗?Thread.interrupt(标志)是静态的,所以通过上面的检查,我们实际检查是否有任何踏板被中断?即使是这种情况,根据教程,当线程通过调用静态方法Thread.interrupted来检查中断时,中断状态被清除. 或者通过抛出InterruptedException退出的任何方法都会在执行此操作时清除中断状态
那么,我错过了什么吗?或者这只是有用的,如果某个线程收到了一个中断,但没有检查它,或者没有抛出它?