小编Chr*_*mes的帖子

在查询实体时如何强制NHibernate命中数据库?

我有一种情况,我需要NHibernate忽略它的缓存,只是命中数据库,因为数据已经改变(另一台计算机上的另一个用户已经更改了数据).这怎么可能?到目前为止,我没有运气.获取,加载,Linq查询,没关系.NHibernate没有获得最新的数据.

nhibernate

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

AJAX和ASP.NET MVC 3:如何将字符串参数和数组同时传递给Controller

我有以下Controller签名:

public void DoSomething(string dialerJob, MyViewModel[] agentStates)
Run Code Online (Sandbox Code Playgroud)

viewModels表示数组中的表单字段(HTML表中的选定项).我想出了如何将表单元素int作为数组参数传递给控制器​​,这要感谢Robert Koritnik的.toDictionary()jQuery插件(http://erraticdev.blogspot.com/2010/12/sending-complex-json-对象到aspnet.html).

但是,现在我需要将一个额外的字符串参数(从下拉列表)传递给控制器​​,我无法弄清楚如何使其工作.我尝试过各种组合,比如:

 var job = $('#DialerJobs').attr('value');
 var data1 = $.toDictionary(data, "agentStates");

 $.ajax({
   url: "/Blending/ChangeOutboundJob",
   type: "POST",
   dataType: "application/JSON",
   data: {job, data1}
 });
Run Code Online (Sandbox Code Playgroud)

我也尝试过以下方法:

 var job = $('#DialerJobs').attr('value');
 var data1 = $.toDictionary(data, "agentStates");

 $.ajax({
   url: "/Blending/ChangeOutboundJob",
   type: "POST",
   dataType: "application/JSON",
   data: {dialerJob: job, agentStates: data1}
 });
Run Code Online (Sandbox Code Playgroud)

但是没有工作.

如果我从要发送的数据中删除dialerJob参数,则agentStates会正确填充控制器.发送的内容如下所示:

agentStates[0].agentId=7654&agentStates[0].projectId=999&agentStates[0].stateId=1&agentStates
Run Code Online (Sandbox Code Playgroud)

[0] .subStateId = 1&agentStates [1] .agentId = 9876&agentStates [1] .projectId = 999&agentStates

[1] .stateId = 1&agentStates [1] .subStateId = 1

但是,如果我包括dialerJob,那么发送的是:

dialerJob=SomeJob&agentStates[0][name]=[0].agentId&agentStates[0][value]=84&agentStates[1][name]=
Run Code Online (Sandbox Code Playgroud)

[0] .projectId&agentStates …

ajax jquery asp.net-mvc-3

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

这个用于SELECT列表的JQuery绑定有什么问题?

我在页面上有几个选择列表.它们都以数组方式命名,以便它们在视图模型的列表中回发到Controller.渲染它们时,它们看起来像这样:

<select id="OrderItemViewModels_2__OrderItemStatusId" name="OrderItemViewModels[2].OrderItemStatusId"><option value="-1"></option>
<option value="1">CONFIRMED</option>
<option value="2">NO SALE</option>
<option value="3">PENDING</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我正在尝试将.change事件处理程序绑定到它们,因此我可以触发.ajax调用以根据此值的值填充另一个下拉列表,但绑定不起作用.JS看起来像这样:

 $(document).ready(function () {
      $('select[name$="OrderItemStatusId"]').each(function (){
        //alert(this.name);
        var dropdown = this;
        dropdown.change(function() {
          alert('testing ');
          //GetOrderItemReasons(dropdown.val());
        });
      });
Run Code Online (Sandbox Code Playgroud)

我收到的错误是"对象不支持此属性或方法".但是,第一个警报清楚地显示该项目正在被选中,因为它正确显示了名称.

我在这做错了什么?

model-view-controller jquery asp.net-mvc-3

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

如何在MVC3中的回发上获取viewmodel上的子集合?

Phil Haack有一篇文章描述了如何进行设置,因此默认模型绑定器将绑定到帖子后面的集合:

http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

我遇到的问题是我不只是尝试将一个集合发送回Controller操作,而是一个带有集合的ViewModel.

我有一个基本上看起来像这样的课程:

public class MyViewModel
{
public int IncidentNumber { get; set; }
public string StoreId { get; set; }
public string RepId { get; set; }
public string OrderStatus { get; set; }
public CustomerViewModel Customer { get; set;
//... other properties and SelectLists for binding

public IEnumerable<OrderItemViewModel> OrderItemViewModels { get; set; }
Run Code Online (Sandbox Code Playgroud)

我实际上可以在回发中获取CustomerViewModel数据,但OrderItemViewModels列表为空.我该如何取回这些?菲尔的文章没有帮助那里.

c# asp.net-mvc viewmodel asp.net-mvc-3

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