Tag: #javascript

什么是失控开关声明的最佳替代方案?

我inheritance了一个包含一些巨大的switch语句块的项目,其中一些包含多达20个案例。 重写这些的好方法是什么?

完成ASP.NET页面加载后运行javascript函数

我需要在页面完成后从ASP.NET代码运行一个javascript函数。 到目前为止我已经使用过这段代码,但它返回“undefined”,因为当javascript函数被触发时,隐藏字段没有填充值。 我该怎么办? 提前完成。 ASPX: 使用Javascript: function HandleColors() { alert($(‘#’).val()); } 代码背后: ColorHiddenField.Value = item.Color; ScriptManager.RegisterClientScriptBlock(this, this.GetType(), “script”, “HandleColors();”, true);

ASP.NET核心WebAPI安全注意事项

我的WebAPI就是我的UI使用的API后端。 事实上,我的UI将使用10个WebAPI服务。 我很难理解在安全性方面我需要考虑的事项。 我的API使用承载令牌进行保护,并且仅允许https。 我有CORS设置,他们只允许来源https://my-front.end这一切都很好。 但是..如何防范C / XSRF并重放WebAPI上的攻击? 我还需要吗? 使用ASP.NET MVC项目设置反CSRF是相当轻松的,但是如何在WebAPI项目上完成它,据我所知,它依赖于将在服务器上生成的信息发送到客户端以便在请求的主体并通过另一个渠道(例如cookie或标题)。 我读过你可以通过使用nonce(例如时间戳和随机数)来防止重放攻击 – 一些如何 – 但是找不到任何实现示例。 还有什么我需要考虑的吗? 编辑:前端使用vue.js,但我们有一个非常称职的JS程序员,所以任何前端实现都不会有问题。 这只是找出需要做什么的问题! 值得注意的是,为了显而易见,WebAPI和FrontEnd在不同的服务器上运行,因此这些都是有效的跨域调用。

C#MVC 4:将View中的JavaScript数组传递给Controller

在MVC 4中,如何将View中的JavaScript数组传递给使用AJAX的Controller中的函数? 这似乎不起作用: $.ajax( { type: “POST”, url: “../Home/SaveTable”, data: { function_param: countryArray } }); 问题是,countryArray是JavaScript视图中的全局数组,我在传递之前检查它是否包含元素。 但是,当saveTable函数接收到数组时,该函数表示它收到一个空字符串[]数组。 我只知道将数组从Controller传递给View ,你用return Json(data, JsonRequestBehavior.AllowGet);序列化复杂数据类型return Json(data, JsonRequestBehavior.AllowGet); 然后通过将其设置为“var”变量来反序列化它。 所以我可能也必须这样做,但如何? 编辑1: 这是SaveTable函数的缩短版本: public string SaveTable(string[] function_param) { if (function_param != null && function_param > 0) { //some code return “Success”; } //The following code will run if it’s not successful. […]

Javascript:如何遍历模型中的对象列表

所以我需要在视图模型中的学生对象列表中获取学生的名字,然后通过$ .post将它们发送到服务器,后者我已经弄明白但我无法弄清楚如何遍历对象列表。 基本上我有这个: //Student object public class Student { public string FirstName { get; set; } public string LastName { get; set; } //Like a bunch of other attributes here } 这是视图中的模型: //StudentSearchResult ViewModel public class StudentSearchResult { public IEnumerable { get; set;} } 起初我只是按原样发送学生列表对象,但它可能不是一个好主意,因为它捆绑了太多属性(当我尝试发送模型时它给了我’循环’错误)而且我只真的需要使用我已有的$ .post方法将连接的FirstName和LastName发送到控制器。 我尝试过这样的事情: var names = [] var length = “@Model.StudentSearchResult.count()”; […]

Page_ClientValidate()对象预期错误,无法找到validation器

我有一个表单HomePage.aspx包含一个空的asp:Panel,一个下拉列表,让用户选择一个SPFielType …索引更改,我的HomePage.aspx.cs页面将获得选中的文本,并将在面板中加载用户控件,这个用户控件将根据用户选择的spfieldtype和一个调用validateForm()函数的按钮生成一个控件…我的问题是validateForm()内的Page_ClientValidate()函数找不到validation器,我也尝试过给一个组名,但仍然没有工作。 当我将按钮放入我的aspx页面(不动态渲染)时,它正在validation我的页面。( )。 但是当我动态渲染它时,无法validation表单。这就是我想要做的: protected override void CreateChildControls() { try { fieldRenderingControl = this.CreateFieldRenderingControl(this.FieldType); this.Controls.Add(fieldRenderingControl); Button button = new Button(); button.UseSubmitBehavior = false; button.Text = “ValidateButton”; button.ID = “ValidateButton”; button.OnClientClick = “validateForm()”; this.Controls.Add(button); RequiredFieldValidator newValidator = new RequiredFieldValidator(); newValidator.Text = “***”; newValidator.ID = “valideee”; newValidator.EnableClientScript = true; newValidator.Enabled = true; newValidator.SetFocusOnError = true; newValidator.Display […]

如何通过SignalR传递复杂对象?

SignalR上有一个很好的教程,解释了如何将.NET对象作为参数传递给Javascript,反之亦然。 在这种情况下,它传递一个ChatMessage对象。 但是,该教程解决了一个非常简单的对象。 我想看看如何在Javascript中处理复杂的.NET对象(其他对象作为属性)。 例如,请考虑以下对象: class Master { public List QuarterHours { get; set; } public List Books { get; set; } public int EndDay { get; set; } public int StartDay { get; set; } } class QuarterHour { public MinuteInstance Minute {get; set;} public int HourStart { get; set;} } class MinuteInstance { […]

Javascript“var obj = new Object”在C#中等效

有没有一种简单的方法来创建和使用C#设置属性,就像在Javascript中一样。 示例Javascript: var obj = new Object; obj.value = 123476; obj.description = “this is my new object”; obj.mode = 1;

FullCalendar,如何允许用户编辑/删除事件并将其从数据库中删除?

我正在按照自己的意愿控制Full Calendar模块。 目前我拥有它以便日历getEvents方法联系一个SQL表并返回用户的所有事件 – 该部分完美地工作。 我想添加的function是允许用户编辑/删除事件,并将这些更改反映在数据库中! 我的意思是在我的表中,用户可以拖放事件来改变他们的时间,当他们点击一个事件时,我希望出现一个对话框,询问他们是否要删除此事件。 我希望这些更改能够在SQL表中表示。 我怎样才能做到这一点? 我是JQuery,JavaScript和DatePicker的新手。 从我的谷歌搜索和尝试学习,我在这里找到了类似的线程 function (calEvent) { removeRequestedEvent($(this), calEvent); }, It just passes in the calendar event and the calendar itself. removeRequestedBooking: function (cal, calEvent) { if (!confirm(“Delete?”)) return; cal.fullCalendar(“removeEvents”, calEvent.id); cal.fullCalendar(“rerenderEvents”); // Re-show draggable element $(“#requests #” + calEvent.id).show(); } 提供此代码,我认为这与我需要的类似,但是我希望在调用removeEvents时从数据库中删除该事件。 我假设我需要一些类似于从数据库中检索事件时的代码(代码如下所示),但我不确定代码应该如何构造。 任何人都可以帮我解决这个问题吗? var db = Database.Open(“users”); […]

从ASP代码后面将参数传递给Javascript函数

我有一个很长的过程,我想向用户显示一个进度条,我将参数(百分比)传递给我的带有母版页的Webform中的Javascript函数。 我有这个: function updateProgress(percentage) { document.getElementById(‘ProgressBar’).style.width = percentage+”%”; } 和: 在我的代码隐藏中,我将此参数传递给函数: // Report progress >> ~ 18% string updateProgress = “18”; ClientScript.RegisterStartupScript(this.GetType(), “updateProgress”, “updateProgress(‘” + updateProgress + “‘);”, true); 当我运行代码时,进度条永远不会从0%移动。 我想继续通过使用新参数再次调用函数来更新代码后面的完成百分比,直到达到100%。 我已经浏览了论坛,但我无法看到我需要做些什么才能让它发挥作用。 有任何想法吗?