如何通过AJAX渲染局部视图?

对于那里的MVC专家来说,这应该相对简单,但我仍在学习绳索。 我有一个不是强类型的视图,只是ViewPage 。 在这个视图中,我有一个文本框,使用jQuery的AutoComplete进行扩展 当用户在文本框中键入内容时,AutoComplete会对Controller进行AJAX调用,Controller调用存储过程,返回JSON记录集合,包含2个属性: ID (项目的标识符 ) 名称 (项目名称) 现在,使用jQuery AutoComplete UI插件,当用户单击自动完成中显示的项目之一时,将调用客户端事件,并传递JSON对象: // .. snip heaps of jQuery select: function (event, ui) { // ui is a JSON object: // ui.item.id // ui.item.name } 现在我的问题是 – 从这个客户端事件,我需要在同一页面上(在texbox下面)显示有关此项目的扩展信息。 (显然需要对服务器进行另一次AJAX调用)。 我怎样才能做到这一点? 我唯一能想到的就是让jQuery调用另一个返回单个JsonResult控制器,然后手动解析这个JSON,显示我想要的HTML。 这是唯一的方法吗? 我可以使用帮手吗? 我的View不是强类型的原因是因为当页面加载时,没有显示关于模型的信息,只是文本框。 我真的希望我可以创建一个强类型的局部视图,并以某种方式在这个局部视图上调用RenderPartial,传递我想要显示的项目的id。 这可能来自客户端/ AJAX吗?

重置DataTable中的AutoIncrement

我使用DataAdapter将DataSet填充到SQL CE数据库。 数据显示在DataGrid上,该DataGrid绑定到DataSet的DataTable。 我的DataSource中有一个自动递增ID字段(或在SQLCE中,称为PRIMARY KEY IDENTITY ); 相应地,我还在我的DataTable设置了AutoIncrement ID列。 /* when DataTable is first populated, start counting from Rows.Count */ /* if empty, starts with 1 */ dt.Column[“id”].AutoIncrementSeed = dt.Rows.Count + 1; 清除DataTable时出现问题。 我想将AutoIncrement Counter重置为1但不能,我尝试了以下方法: /* clearing and disposing DataTable, DataSet, DataAdaptor does not reset the counter */ dt.Clear(); dt.Dispose(); ds.Clear(); ds.Dispose() da.Dispose() /* manually […]

如何创建调度程序(例如,安排推文或api请求)

我有一个计划项目表,它们可能会安排在同一时间。 我想知道如何让它们在正确的时间执行: 我看到的问题是执行一个预定项目(如预定的推特post)需要API请求,这可能需要一两秒钟 – 可能更长。 如果我按顺序执行它们+同时有太多的预定项目,那么它们执行的时间可能是在预定的时间之后。 我将如何构建避免这些问题的“调度”系统? 任何提示,建议? 谢谢!

单个方法的管理员权限

我目前正在开发ApplicationLauncher / Autoupdater。 因此,要将应用程序安装/更新为“Program Files”,我需要请求管理员权限。 好吧,因为如果找到新版本,Updater只需要写一些东西,我试图只在发现新版本时才请求这些特权。 在应用程序启动之前,每次都会执行更新程序,因此请求“每次”管理员都没有解决方案…… 我搜索了很多,发现了以下内容: [PrincipalPermission(SecurityAction.Demand, Role = @”Administrators”)] private void InstallOrUpdate(AppItem appItem) 但我想尝试这个,更新程序抛出一个SecurityException … 申请主要许可失败。 我究竟做错了什么? 最好的问候,dognose

WP8如何创建基页并使用它

我用谷歌搜索,但没有得到任何有用的资源,所以我决定问。 问题: 我有一个Windows Phone 8 C#/ XAML .NET 4.5应用程序 ,它将有几个页面( 15 – 50 ),它们将具有相似的外观+相同的datacontext设置为一个ViewModel实例 : ————————– |logo usermenu(v)| ————————– | | | | | | | ..variable.. | | ..content… | | | | | ————————– 题 : 我在这件事上找不到任何可用的东西,有人可以解释一下怎么做吗? (我是菜鸟 – 这意味着我很感激任何有用的信息,但更多的是对傻瓜的解释) 如何创建一个基页/祖先来从中派生我的页面? 有没有办法在祖先中设置datacontext? 如何使用该基页/祖先? PS:如果你想知道为什么我想要有相同datacontext的页面,有更多关于它的文章写在我之前问过的这个问题

UWP – 按空格时不要点击事件(如电影和电视应用程序)

我正在制作自定义媒体播放器,并尝试重现与电影和电视应用(Windows 10 CU)相同的行为。 无论如何, 空间都用于播放和暂停video。 在聚焦时, 空格 不用于单击按钮(但输入是)。 这种行为打破了一些关于键盘可访问性的规则,但我认为没关系。 用于播放和暂停的空间是用户期望的。 问题是:他们是怎么做到的? 我发现了一些半解决方案: 解决方案1 Window.Current.CoreWindow.KeyDown以及if Click Event Handler Page.xaml.cs: protected override void OnNavigatedTo(NavigationEventArgs e) { Window.Current.CoreWindow.KeyDown += CoreWindowOnKeyDown; //… } bool isItSpace; private void CoreWindowOnKeyDown(CoreWindow sender, KeyEventArgs args) { if (args.VirtualKey == VirtualKey.Space) isItSpace = true; } private void ButtonBase_OnClick(object sender, RoutedEventArgs e) { if (isItSpace) […]

从aspx页面调用方法后面的代码

我有一个像这样的图像标签 <asp:Image ID="ImgProduct" runat="server" ImageUrl='’ /> 并在代码后面我有一个像这样的方法 protected string FormatImageUrl(string s) { return “image”+s; } 当我朗读代码时,我期待带有src =“image10”的HTML图像标记将呈现。 但为什么没有发生? 任何线索? 我在asp.net。 不是mvc

等待不使用当前的SynchronizationContext

在异步函数中使用不同的SynchronizationContext而不是外部时,我会遇到令人困惑的行为。 我程序的大多数代码都使用自定义的SynchronizationContext,它只是将SendOrPostCallbacks排队并在我主线程中的特定已知点调用它们。 我在开始的时候设置了这个自定义的SynchronizationContext,当我只使用这个时,一切正常。 我遇到的问题是我有函数,我希望他们等待继续在线程池中运行。 void BeginningOfTime() { // MyCustomContext queues each endOrPostCallback and runs them all at a known point in the main thread. SynchronizationContext.SetSynchronizationContext( new MyCustomContext() ); // … later on in the code, wait on something, and it should continue inside // the main thread where MyCustomContext runs everything that it has queued […]

将C#Jagged数据编组到C ++

我正在尝试将2D C#锯齿状数组( double[][] jaggedArray ) double[][] jaggedArray到C ++ dll中,我已将接收变量指定为double** 。 但是,我收到的消息是: 嵌套数组没有编组支持。 如果没有扁平化锯齿状arrays,有没有办法在C ++ dll中使用C#中的锯齿状数组?

.NET客户端通过SSL连接到IBM MQ

我从客户端获得了关键文件,我需要使用它们来连接到MQ over SSL。 我们从客户端获得的文件是: xxx.crl xxx.kdb xxx.rdb xxx.sth xxx.tab 他们说客户端频道表。 我正在尝试使用以下代码进行连接。 他们说我不需要指定它将在客户端通道表中定义的队列管理器。 但有一点是他们在使用“user1”创建密钥时已完成。 码: Hashtable connectionProperties = new Hashtable(); // Add the connection type connectionProperties.Add(MQC.TRANSPORT_PROPERTY, connectionType); MQQueueManager qMgr; MQEnvironment.SSLCipherSpec = “TRIPLE_DES_SHA_US”; MQEnvironment.SSLKeyRepository = @”D:\Cert\BB\key”; MQEnvironment.UserId = “user1”; MQEnvironment.properties.Add(MQC.TRANSPORT_PROPERTY, connectionType); qMgr = new MQQueueManager(); 我得到的错误: 消息=“MQRC_Q_MGR_NAME_ERROR” 我也试过telneting我能做的服务器。 有些人可以帮助我,我在这里做错了,为什么我得到这个错误。