小编Ath*_*ena的帖子

与JQuery,asp.net-MVC控制器的问题

我有一个(我认为是愚蠢的)问题.

我有一个控制器,索引方法,它的视图有一些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)

asp.net-mvc jquery

4
推荐指数
1
解决办法
128
查看次数

视图设置中的MVC下拉列表选择了值

我正在尝试为下拉列表设置所选值.

在控制器我有

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)

但它不起作用.

谁能告诉我该怎么办?

asp.net-mvc drop-down-menu

1
推荐指数
1
解决办法
9449
查看次数

java关于Thread.interrupted()的混淆

我正在浏览关于线程的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退出的任何方法都会在执行此操作时清除中断状态

那么,我错过了什么吗?或者这只是有用的,如果某个线程收到了一个中断,但没有检查它,或者没有抛出它?

java interrupt

0
推荐指数
1
解决办法
5192
查看次数

标签 统计

asp.net-mvc ×2

drop-down-menu ×1

interrupt ×1

java ×1

jquery ×1