Tag: ajax

部分内部的BeginCollectionItem部分行为不正确

我正在尝试使用编辑版本的BeginCollectionItem通过MVC 5中的表单提交立即绑定我的所有模型数据,如Joe Steven的博客中所述。 模型, Company ,有一个List ,类Pa_Ipv4又有一个List ,我想访问并保存到数据库中每个Pa_Ipv4所有属性。 IE: Model.pa_ipv4s[x].requestedIps[x].subnet 主页面使用的是模型Company ,它部分接受Pa_Ipv4 ,它部分接受IpAllocation 。 问题1:在我的控制器中,我正在为列表中的第一个项目(requestedIp)设置字符串属性,但是当我提交和回发时,属性( allocationType )为null,此属性需要进行硬编码,因为它是DB内部使用 – 为什么要重置? 原因:该属性不在post方法中,因此最初声明的内容将被丢弃,因为它不在end post中。 可能的解决方案:在表单中使用隐藏属性,以便在发布表单时使用该属性,并且用户无法访问该属性。 问题2: BeginCollectionItem正确地命名属性,IE: pa_ipv4s[8e075d50-a5fb-436f-9cef-85abfb6910e3].requestedIps[b693b83c-b6b1-4c42-b983-4d058e766d4c].subnet ,但只有初始模型,它忽略了任何其他创造了,我做错了什么? 原因: IpAllocation BeginCollectionItem无法访问由Pa_Ipv4部分BeginCollectionItem生成的前缀所需的GUID,因为只有初始内容具有正确的前缀,此后添加的任何内容都会错过必要的前缀。 另一个可能的解决方案基本上是相同的概念,但不是使用div,而是使用html数据属性,以便它可以访问。 我认为我遇到的两个问题都与我如何设置控制器有关,但我也在下面列出了视图和模型。 该模型包含所有属性,我的视图中已删除了大量这些属性以节省空间,因为这些不会导致问题。 创建 @model Company @{ Layout = “~/Views/Shared/_Layout.cshtml”; } @using (Html.BeginForm()) { PA IPv4 Request Form Company Details Company Name @Html.EditorFor(m => m.name) @Html.ValidationMessageFor(m […]

使用WebApi,ajax上传文件

我想通过进行ajax调用使用WebApi上传文件,文件将保存到数据库中。 我尝试了这个链接中给出的代码。 在这里,它将收到的数据保存为硬盘驱动器作为没有指定扩展名的文件,但我想做一些事情,比如当我将文件保存到数据库时我也希望保存文件名和扩展名,如果我需要的话下载文件我可以提供文件名和扩展名。 在链接中,文件作为文件保存到硬盘驱动器,但有任何方法可以直接将文件保存到DB。

从Javascript将KeyValuePair或IDictionary的列表传递给Web Api控制器

我有一个web api控制器,我想发布两个参数。 一个是扁平的int ID,另一个是IDictionary或类似的等价物。 [HttpPost] public void DoStuff(int id, [FromBody]IDictionary things) { } var things = new Array(); things.push({ 1: 10 }); // tried things.push({ Key: 1, Value: 10 }) things.push({ 2: 11 }); $.ajax({ url: ‘/api/DoStuff?id=’ + id, data: ‘=’ + JSON.stringify(things), // tried what seems like 100 different things here type: ‘POST’, dataType: […]

在C#中反序列化JSON数组(或列表)

这是基本代码: public static string DeserializeNames() { jsonData = “{\”name\”:[{\”last\”:\”Smith\”},{\”last\”:\”Doe\”}]}”; JavaScriptSerializer ser = new JavaScriptSerializer(); nameList myNames = ser.Deserialize(jsonData); return ser.Serialize(myNames); } //Class descriptions public class name { public string last { get; set; } } public class nameList { public List { get; set; } } 我试过了: nameList myNames = ser.Deserialize(jsonData); 和: List myNames = […]

ASP.NET – Ajax.BeginForm OnSuccess使用params回调

我想在我的OnSuccess回调中添加更多参数( 但保留ajax上下文变量 )。 我做的是: using (Ajax.BeginForm(“Register”, new AjaxOptions() { OnSuccess = “new function(arg){HandleBasicForm(arg , ‘MyCustomVariable’)}”, … JSfunction: function HandleBasicForm(ajaxContext , myCustomVariable){ var content = ajaxContext.get_response().get_object(); …. } 但是ajaxContext为null。 我怎么做?

UpdatePanel中ListView中的LinkBut​​ton会导致完全回发

我在UpdatePanel中的ListView中有一个LinkBut​​ton。 我想按钮(好吧,其中任何一个)导致部分回发,但它们导致整页回发。 <asp:LinkButton ID="lnkAddTarget" CssClass="lo" Text='<%# Eval("Title") + " ” + Eval(“Level”) + Eval(“SubLevel”) + “” %>’ runat=”server”> 我在stackoverflow上发现了另一篇post,建议添加: protected void lvTargets_ItemDataBound(object sender, ListViewItemEventArgs e) { var lb = e.Item.FindControl(“lnkAddTarget”) as LinkButton; tsm.RegisterAsyncPostBackControl(lb); // ToolkitScriptManager } 它没有什么区别…… 还有一些其他类似的post,但我找不到解决方案! 有任何想法吗?

ASP.NET在更新面板更新时显示“正在加载…”消息

您好我正在创建一个ASP.NET / C#应用程序我有一个需要时间更新的更新面板。 有没有办法在计算期间显示“正在加载…请等待”消息? 目前我正在使用AJAX面板动画淡入/淡出,使面板在计算时消失,然后在完成时重新出现。 但这不太实际。 如果可能,我需要显示一条消息。 感谢您的任何帮助。 这是我的面板的代码: //Contents goes here 和Ajax Panel动画扩展器

AsyncFileUpload回发会导致双重上传

我在网页上实现了AsyncFileUpload控件。 此网页要求上传的文件显示在GridView 。 GridView包含以下列:“ 文件名 ”,“ 机密 ”复选框和“ 删除 ”按钮以删除上载的文件。 由于AsyncFileUpload回发不执行整页回发,因此我需要在AsyncFileUpload控件的OnClientUploadComplete事件上“强制”回发,以便在上载文件后呈现gridview。 在OnClientUploadCompleteEvent ,我使用javascript来调用__doPostBack 。 在这个回发中,我只绑定我的GridView并显示文件信息(我不重新保存文件)。 问题: 在AsyncFileUpload的第一个“部分”回发上,文件已按预期成功上传。 在我用__doPostBack强制的第二个回发中,文件被重新上传。 您可以使用显示上传进度的Google Chromevalidation这一点。 行为如下: – 选择文件后,进度从0%增加到100%并上传文件。 – 此后,执行__doPostBack ,您可以再次看到上传进度从0%增加到100%。 如何确保Gridview已正确填充,但文件未上载两次? 我附上了一个包含问题的示例解决方案: https : //www.yousendit.com/download/MzZFc2ZBNDRrYUN4dnc9PQ

在ajax post问题中传递数据

场景: 需要将包含子对象列表的对象传递给控制器​​。 问题 : 我能够获取对象的值,但不能获取对象内的子对象列表的值。 代码: index.cshtml function sendData() { var student = { Id: 1, Name: “xxx”, Marks: [{ Subject: “Maths”, Mark:80 }, { Subject: “Science”, Mark: 75 }] } $.ajax({ url: ‘@Url.Action(“Receive”, “Home”)’, data: student, success: function (data) { alert(“done”); }, error: function (error) { alert(‘error For details refer console log’); console.log(error); } […]

允许用户使用Ajax下载文件

我正在寻找一种方法,允许用户使用ajax从我的网站下载文件。 我需要这样做的原因是因为文件非常大(通常为50兆)。 因此,当用户单击下载按钮时,它实际上看起来好像页面没有响应,因为它必须将文件从我的Amazon S3流式传输到用户。 所以我需要通知用户下载正在进行中,甚至可能给他们一个进度条。 我找到了以下文章,但我并不热衷于将iFrame注入我的网页。 在此先感谢您的帮助。