我想将现有的ASP.NET应用程序迁移到ASP.NET MVC模式格式.我应该遵循什么程序?任何分步说明都会非常有用.
我有一个TypeScript类,有一个我打算用作回调的函数:
removeRow(_this:MyClass): void {
...
// 'this' is now the window object
// I must use '_this' to get the class itself
...
}
Run Code Online (Sandbox Code Playgroud)
我将它传递给另一个函数
this.deleteRow(this.removeRow);
Run Code Online (Sandbox Code Playgroud)
反过来调用jQuery Ajax方法,如果成功,则调用这样的回调:
deleteItem(removeRowCallback: (_this:MyClass) => void ): void {
$.ajax(action, {
data: { "id": id },
type: "POST"
})
.done(() => {
removeRowCallback(this);
})
.fail(() => {
alert("There was an error!");
});
}
Run Code Online (Sandbox Code Playgroud)
我可以保留我的类的'this'引用的唯一方法是将其传递给回调,如上所示.它有效,但它是裤子代码.如果我没有像这样连接'this'(抱歉),那么回调方法中对此的任何引用都已恢复为Window对象.因为我一直在使用箭头函数,所以我期望'this'将是类本身,因为它在我班级的其他地方.
任何人都知道如何在TypeScript中传递回调,保留词法范围?
我正在将我的应用程序升级到Bootstrap 2.1.1,我需要为许多表单标记添加一个类属性(class ="form-horizontal").问题是,大多数形式使用相当漂亮
@using (Html.BeginForm()) {
Run Code Online (Sandbox Code Playgroud)
我宁愿保留的格式.获取class属性的明显方法是使用以下重载,例如:
@using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @class = "form-horizontal" })) {
Run Code Online (Sandbox Code Playgroud)
但我宁愿不这样做.向表单添加类属性的最佳方法是什么?
我已经考虑过将.addClass("form-horizontal")的jQuery文档就绪处理程序用于表单,但我担心用户会看到可怕的'无格式内容的闪存'.
另一种方法可能是使用less -style mix-in,将.form-horizontal类添加到所有表单样式规则中,但我还没有少用,所以我不确定这个.
有谁知道解决这个问题的最佳方法?
如果以前曾经问过这个,并且很难想象它没有,但它没有明显的关键字关联,所以很难检查.
如果我有一对夫妇的标准方法,如C#类GetByCode(string code)和GetByCodeAndResourceType(string code, string resourceType),我应该只是将其重命名为超载Get(...),因为它们是由参数列表区分?
显然,可能存在这样的情况:可能需要相同的方法签名用于不同的目的,但除了我不能看到需要单独的方法名称,只要有智能感知的评论.
我很想知道有谁认为是利弊.
我在Visual Studio 2010/2012中的ReSharper 7中设置了两个永久测试会话 - "传递"和"失败".我每天运行Passing会话,并且可以快速识别自上次以来的任何回归失败,在这种情况下我将这些测试移动到Failing,在那里我可以在我有时间的时候处理它.它的工作原理很棒.
问题是我无法找到任何方法将这些会话导出为"解决方案团队共享"选项,正如ReSharper文档中针对您可能希望在团队中共享的设置所建议的那样.显然,能够在相同的测试会话结构的时间内使用其他人是有益的.但是当我改变我的会话时,它似乎只会更新'PatientPortal.sln.DotSettings.user'文件,而不是'PatientPortal.sln.DotSettings'文件.
在RESHARPER - >选项 - >单元测试中,我检查了"保存并恢复单元测试会话"并选择了"保存到" - "解决方案[名称]团队共享"
由于我遇到的困难,我怀疑ReSharper单元测试会话不是为你办理登机手续并分享的,但我觉得在这种情况下这样做很有成效,所以有人都知道怎么做这个?
我确信这很简单,但它让我疯了.
我的页面上有一个ListBox来显示艺术家,它们在索引被更改时调用一个方法,还有一个按钮,用于在单击时从另一个页面中加载该列表中的艺术家:
<asp:ListBox ID="lbArtists" runat="server" Rows="1" AutoPostBack="true" OnSelectedIndexChanged="ShowArtistsWorks" />
<asp:Button ID="btnEditArtist" runat="server" Text="Edit the artist" OnClick="LoadArtist" />
Run Code Online (Sandbox Code Playgroud)
接下来,我有一个类似的链接列表,它也有一个autopostback方法:
<asp:ListBox ID="lbLinks" runat="server" Rows="1" AutoPostBack="true" OnSelectedIndexChanged="LoadLink" />
Run Code Online (Sandbox Code Playgroud)
问题是,当我ShowArtistsWorks()通过单击调用时btnEditArtist,该LoadLink()方法也会被调用.为什么会这样?当我没有更改lbLinksListBox 上的索引时,为什么会调用它?它不应该接近那种方法.
编辑:(相关)代码隐藏方法(
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack){
GetArtists(); // populates artists listbox
GetLinks(); // populates links listbox
}
}
protected void LoadArtist(object sender, EventArgs e){
if (lbArtists.SelectedValue != "")
Response.Redirect("Artist.aspx?id=" + lbArtists.SelectedValue);
}
protected void LoadLink(object sender, EventArgs e)
{
if …Run Code Online (Sandbox Code Playgroud) 我正在设置我的MVC4应用程序以使用内置的ASP.Net捆绑(从Squishit转换).我已经设置了BundleConfig类,并且一切正常,但是对于Razor文件只引用一个JavaScript文件的情况,我认为不需要涉及该配置文件.我宁愿在Razor'Scripts'部分中将脚本添加到BundleTable,然后在那里渲染它.这样,如果我不得不改变BundleConfig文件,我可以很容易地进行小的更改.这就是我所拥有的:
@section Scripts
{
@{
const string bundle = "~/bundles/{myVirtualBundlePath}";
BundleTable.Bundles.Add(new ScriptBundle(bundle)
.Include("{myActualJavaScriptFilePath}"));
Scripts.Render(bundle);
}
}
Run Code Online (Sandbox Code Playgroud)
虽然这构建正常,但对该捆绑文件的引用永远不会输出到HTML.
我是否需要获取BundleConfig使用的特定BundleCollection的引用?
我需要将一串文本拆分为其组成词,因此我使用正则表达式将其拆分为空格(在 Typescript 文件中,顺便说一句)。
splitIntoWords(text: string) : Array<string> {
const separator = ' ';
const words = text.split(new RegExp(separator, 'g'));
return words;
}
Run Code Online (Sandbox Code Playgroud)
这主要是有效的,但我注意到我经常在数组中得到仍然包含空格的单词。如果我将文本复制到 Chrome 控制台并 split(' ') 它我得到正确数量的单词,但是当我使用变量时(即使在控制台中)它在某些情况下总是会失败。我无法弄清楚有什么区别。这是我的文字示例:
"Le coronavirus en France : la décrue se poursuit en réanimation, la reprise économique au cœur des préoccupations. La mise en œuvre du plan de déconfinement élaboré par le gouvernement doit encore faire l’objet, jeudi, d’un « travail de concertation et d’adaptation aux réalités de terrain » avec les responsables et les …Run Code Online (Sandbox Code Playgroud) javascript ×3
typescript ×2
asp.net ×1
asp.net-mvc ×1
bundle ×1
c# ×1
c#-3.0 ×1
callback ×1
css3 ×1
migrate ×1
object ×1
resharper ×1
string ×1
unit-testing ×1
webforms ×1