Tag: ajax

如何通过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吗?

检查目录中是否存在File而忽略扩展名

我使用的是.NET 2.0,Linq是不可能的。 我想在不知道文件扩展名的情况下检查文件是否存在于目录中。 我只需要完成这个逻辑。 1.使用搜索模式提供的字符串文件名在目录中存在检查文件,省略文件的扩展名 2.获取文件(如果存在)和Databind提供Download links 。如果文件不存在,则开始上传文件。 更新: Directory.GetFiles()和DirectoryInfo.GetFiles()确实解决了我检查文件存在的部分。 至于有关FileInfo对象的性能,这些只是我对数据绑定的要求的解决方案,以提供下载链接

Updatepanel提供完整的回发而不是asyncpostback

我遇到了一个非常着名的问题:我的updatepanel触发了一个完整的回发而不是异步回发。 正常的解决方案是给你动态添加的所有控件一个ID,我已经完成了,但我仍然得到一个完整的回发而不是我的异步回发… 这是代码: HTML: … Listview stuff … 有趣的部分是后面的C#代码(方法PlayerItems_ItemDataBound),如下所示: ImageButton imgBtn = new ImageButton(); imgBtn.ID = “itemBtn”; imgBtn.Width = Unit.Pixel(30); imgBtn.ImageUrl = “~/Images/Game/Items/” + myItem.ItemImageUrl; ContextMenu menu = new ContextMenu(); menu.BoundControls.Add(imgBtn); menu.ItemCommand += new CommandEventHandler(menu_ItemCommand); menu.AutoHide = true; menu.RolloverColor = Color.Gray; menu.ID = “MenuMenu”; Panel panel = (Panel)(e.Item.FindControl(“ItemPanel”)); panel.Controls.Add(imgBtn); panel.Controls.Add(menu); AsyncPostBackTrigger trig = new AsyncPostBackTrigger(); […]

从MVC 3中的ActionResult类型方法返回一个JSon数组到$ .ajax

我有一个TreeView帮助器,它包含类别列表及其链接。 我这样做了 @helper TreeView(FavouriteLinksXmlMVC3.Controllers.HomeController cat) { cat = new FavouriteLinksXmlMVC3.Controllers.HomeController(); try { foreach(FavouriteLinksXmlMVC3.Models.CategoriesControl list_category in cat.Categories) { @list_category.Name @if(list_category.hasChild) { @foreach(var links in list_category.Links) { @links.Name } } } } catch(Exception e) { Response.Write( e.ToString() ); } } 好。 它的工作就像一个魅力。 我做了一个函数,它使用JQuery获取链接信息: $(“.file”).click(function () { $.ajax({ url: ‘@Url.Action(“GetLinkInfo”)’, data: { cat_name: $(this).attr(“categ_name”), url: $(this).attr(“id”) }, type: […]

使用’无法加载资源的Ajax调用:服务器响应状态为500′

我创建了一个执行ajax调用的函数但是当我在C#中调用我的GetTempData方法时出现此错误: Failed to load resource: the server responded with a status of 500 (Internal Server Error) 这是我的代码: function restoreDatas() { $.ajax({ url: “/AddRecipe/GetTempData”, type: ‘GET’, dataType: ‘json’, contentType: ‘application/json’, cache: false, processData: false, success: function (result) { } }); } ajax调用调用的C#方法: public ActionResult GetTempData() { return Json( new { title = Session[“title”], cookingTime = Session[“cookingTime”], […]

如何将javascript对象传递给C#MVC 4控制器

在MVC4中,如何将javascript对象传递给AJAX中的C#控制器? 最后我尝试了这个,但它没有用。 Javascript客户端: var myData = {Propr1: ”, Propr2: ”}; $.ajax({ type: ‘POST’, data: JSON.stringify(myData), url: ‘/Home/SubmitMyData’, contentType: ‘application/json’, dataType: ‘json’, success: alert(‘Youhou’), error: alert(‘not good’) }); C#服务器端方法: public ActionResult SubmitMyData(MyParamModel myParam) { // Do my stuff here with my parameter return View(); } public class MyParamModel { string Prop1 { get; set; } string […]

UserControl中的AJAX ScriptManager

我有一个UserControl,其中包含一个UpdatePanel,它包含一些其他控件。 UserControl将用于已有ScriptManager的一些页面和其他没有ScriptManager的页面。 我希望UserControl自动带来自己的ScriptManager(如果不存在)。 我已经尝试过ScriptManager.GetCurrent,如果它返回null,我创建自己的ScriptManager并将其插入到Form中,但我无法在UserControl的生命周期中尽早找到一个位置来运行此代码。 我一直收到错误“带ID的控件’uPnlContentList’需要页面上的ScriptManager。ScriptManager必须出现在任何需要它的控件之前。” 每次我尝试加载页面。 我尝试运行我的代码的地方是OnInit,CreateChildControls和PageLoad,它们永远不会被调用,因为它在到达它们之前就已经死了。 我应该把这张支票放在哪里?

无法在UpdatePanel中找到具有ID的控件

我有一个更新面板,其条件和ChildrenAsTriggers的UpdateMode设置为false。 我只想要几个控件来导致异步回发: // … // … 我尝试加载此页面时收到以下错误: A control with ID ‘btnAddSomething’ could not be found for the trigger in UpdatePanel ‘updPnlMain’. 由于我的btnAddSomething控件位于转发器中,并且可能不会立即存在,因此它的行为就像它不存在一样。 我怎么能绕过这个?

设置AssociatedUpdatePanelID时Updateprogessbar不起作用?

我在页面上有两个updatepanel和一个进度条。 如果我设置了AssociatedUpdatePanelID,那么进度条不起作用,没有设置AssociatedUpdatePanelID进度条正在工作,但问题是对两个updatepanel都有效。 但我需要在一个更新面板上工作。 代码背后 – C# protected void Button1_Click(object sender, EventArgs e) { System.Threading.Thread.Sleep(3000); } protected void Button2_Click(object sender, EventArgs e) { System.Threading.Thread.Sleep(3000); } 在这个video中,他还没有设置AssociatedUpdatePanelID http://www.asp.net/learn/ajax-videos/video-123.aspx

updatepanel与页面方法

我一直在使用update panels ,当我想要更新我的页面的特定部分但最近我遇到性能问题(我的意思是它渲染预期的控件很慢,有时它不起作用,需要多次点击工作! 所以我的问题是: 页面方法是否可以被视为更新面板的有效替代方案并执行ajax魔术? 还有什么其他选择? 请尽可能一个简单的例子来说明如何使用页面方法替换更新面板?