小编Sim*_*ver的帖子

REST URL所需的建议将提供给第三方访问我的网站

重要提示:这个问题实际上并不是一个ASP.NET问题.任何对URL都有所了解的人都可以回答.我恰好使用ASP.NET路由,因此包含了这个细节.

简而言之,我的问题是:

"我应该设计哪种URL格式,我可以让外部各方到达我的网站上的特定位置,以便将来证明.[我是创建这些'REST'网址的新手]."


我需要一个ASP.NET路由URL,该URL将提供给第三方用于跟踪营销活动.它本质上是一个"网关"URL,可将用户重定向到我们网站上的特定页面,该页面可能是主页,特殊竞赛或特定产品.

除了试图捕捉引荐我将需要接受PARTNERID,竞选号码和其他可能的参数.我想提供一个这样做的路线,但我想第一次就把它弄好,因为很明显,一旦外部使用它,我就不能轻易改变它.

这样的事情怎么样?

routes.MapRoute(
   "3rd-party-campaign-route",
   "campaign/{destination}/{partnerid}/{campaignid}/{custom}",
   new
   {
       controller = "Campaign",
       action = "Redirect",
       custom = (string)null // optional so we need to set it null 
   }
); 
Run Code Online (Sandbox Code Playgroud)

广告系列:可能不希望在实际链接中使用"广告系列"一词 - 因为用户会在网址栏中看到它.我可能会把它变成像'c'这样神秘的东西.

destination:指示我们网站上链接将用户带到哪个页面.例如PR将用户引导到产品页面.

partnerid:我们分配的公司的ID - 例如堆栈溢出的SO.

campaignid:广告系列ID,例如123 - 每个合作伙伴都是唯一的.我已经意识到,我认为我希望第三方公司能够自己管理广告系列ID,而不是我们提供一个网站来"制作广告系列".虽然我还不完全确定.

自定义:自定义数据(可选).我可以在不破坏现有URL的情况下添加更多自定义数据参数

注意:我有"目的地"的原因是因为广告系列ID是由客户决定的,因此他们还需要告诉我们该广告系列的目的地在哪里.或者,他们可以"注册"我们的活动.这可能是一个更好的解决方案,以避免人们放入随机的广告系列ID,但我并不过分担心,我认为这个系统提供了更大的灵活性.

此外,我们想知道他们用来链接我们的图像(因此我们可以跟踪哪个横幅效果最好).我认为这是一个新的竞选活动,而不是自定义数据领域,但我不确定.

目前我使用的是非常原始的URL,例如http://example.com?cid=123.在这种情况下,广告系列ID需要发布给第三方,它不是一个非常灵活的系统.我想立即转向新客户的新系统.

关于未来打样这个系统的任何想法?我可能错过了什么?我知道我总是可以添加新格式,但如果这是一个好主意我想尽可能多地使用这种格式.

asp.net rest asp.net-mvc routing

2
推荐指数
1
解决办法
616
查看次数

为什么编译器不能为我推断类型?(又名Smarter SmartEnumerable)

我正在使用Jon Skeet非常聪明的SmartEnumerable.如果您还没有看过,我建议您查看一下.

该类定义如下:

public class SmartEnumerable<T> : IEnumerable<SmartEnumerable<T>.Entry>
Run Code Online (Sandbox Code Playgroud)

构造函数是:

public SmartEnumerable(IEnumerable<T> enumerable)
Run Code Online (Sandbox Code Playgroud)

你用它来说:

new SmartEnumerable<Cat>(myCats);  // where myCats is IEnumerable<Cat>
Run Code Online (Sandbox Code Playgroud)

现在我真的想让编译器推断我有一系列的猫,并且能够说:

new SmartEnumerable(myCats);
Run Code Online (Sandbox Code Playgroud)

但是这给了我一个编译器错误:

无法从用法推断出方法'MiscUtil.Collections.SmartEnumerable.SmartEnumerable(System.Collections.Generic.IEnumerable)'的类型参数.尝试显式指定类型参数.

我不清楚为什么会这样.有没有办法绕过它.为什么它不能看到我正在使用IEnumerable<Cat>并从中推断出来.我可以改变任何东西,让它识别我正在使用的类型吗?

我真的想要一些方法来构建一个SmartEnumerable而不必指定类型 - 因为我主要在ASP.NET MVC中使用它来获取UI,我并不总是includes对类型有所依赖并依赖于var我的参考.我最终必须包含类型才能使用SmartEnumerable - 这会降低其优雅.

哦,我会直接通过电子邮件发送给John,但他反正可能会更快回复:-)


<font color=white>skeet skeet skeet, jon, jon, jon, jon skeet, skeet jon, skeetster, skeetmeister</font>

c# generics

2
推荐指数
2
解决办法
743
查看次数

"禁止触发表单上的默认按钮"问题的良好解决方案?

我需要一个解决方案来解决"默认按钮"老化问题.即你在文本框中按Enter键,但表单上有一个提交按钮,而不是你想要触发的按钮(或者你可能根本不希望该表格被触发).

我想知道以下'解决方案'.有点hacky,但据我所知,应该是可靠的.

在表格内部,第一件事是一个看不见的按钮.然后一些jquery立即禁用它.如果您在表单上按Enter键,此按钮将被视为"默认按钮"并被触发,但由于"return false"事件处理程序而无效.

我以前见过的解决方案依赖于keydown事件处理程序之类的东西,或者其他看似复杂/难以在每个浏览器中测试的东西.

我的解决方案(我以前没见过,但可能不是唯一的)似乎更简单,我认为非常可靠.您甚至可以判断javascript是否已被禁用且有人点击进入,因为服务器将在表单数据中收到此按钮.

<form action="/store/checkout" method="post">

    <input id="btnFakeSubmit" name="FakeSubmit" src="/images/pixel.gif"
     style="width:1px; height:1px; position:absolute;" type="image" /> 

        <script> 
            $('#btnFakeSubmit').click(function() {
                return false;
            });
        </script> 
Run Code Online (Sandbox Code Playgroud)

有关此解决方案的任何建议 - 包括在所有浏览器中隐藏按钮的最佳方法.

forms jquery defaultbutton form-submit

2
推荐指数
2
解决办法
4767
查看次数

如何使用MicrosoftMvcValidation.js而不必包含MicrosoftAjax.js?

看起来MVC 2 RC1中存在一个问题,如果你想使用jQuery.Validate而不是主要的Microsoft AJAX - 即使是gzip也是25kb.

据Phil Haack说,你应该能够包含这些脚本:

   <script src="/Scripts/jquery-1.3.2.js" type="text/javascript"></script>
   <script src="/Scripts/jquery.validate.js" type="text/javascript"></script>
   <script src="/Scripts/MicrosoftMvcJQueryValidation.js" type="text/javascript">
Run Code Online (Sandbox Code Playgroud)

不幸的是,在一些重组中,他们在Beta和RC之间做了 - 你现在还需要包含MicrosoftAjax.js哪个定义Type所使用的原型函数MicrosoftMvcJQueryValidation.js(第一行Type.registerNamespace('Sys.Mvc');是定义的MicrosoftAjax.js)

是否有人已经从中提取出必要的代码MicrosoftAjax.js?我迟早要做,但如果有人已经这样做了会有很多帮助!

asp.net-mvc

2
推荐指数
1
解决办法
5121
查看次数

如何在Silverlight BackgroundWorker中运行批处理的WCF服务调用

是否有任何现有的管道在BackgroundWorker中批量运行WCF调用?

显然,因为所有Silverlight WCF调用都是异步的 - 如果我在后台工作程序中运行它们,它们都将立即返回.

我只是不想实施讨厌的黑客,如果这是一个很好的方式来运行服务调用并收集结果.

  • 无论他们做了什么顺序
  • 所有操作都是独立的
  • 我想一次运行不超过5件物品

编辑:我也注意到(当使用Fiddler时)任何时候都不能发送大约7个电话.即使在浏览器外运行时,此限制也适用.这是由于我的默认浏览器设置 - 还是可配置的.显然它是一个穷人的解决方案(并不适合我想要的)但我可能需要考虑的事情,以确保我的应用程序的其余部分保持响应,如果我将此作为后台任务运行而不是希望它耗尽我所有的联系.

silverlight backgroundworker

2
推荐指数
1
解决办法
1819
查看次数

ListBoxDragDropTarget可防止ListBox填充其父控件

使用Silverlight Toolkit非常容易实现基本的拖放.

http://silverlightfeeds.com/post/1325/Silverlight_Toolkit_adds_DragDrop_targets.aspx

不幸的是,似乎包装器ListBoxDragDropTarget搞砸了ListBox的正常默认行为,它将自身伸展到父控件 - 例如本例中的网格单元.

<Grid Background="Yellow">

 <toolKit:ListBoxDragDropTarget AllowDrop="True">
      <ListBox x:Name="customerListBoxMain" 
               DisplayMemberPath="Name">
        <ListBox.ItemsPanel>
          <ItemsPanelTemplate>
            <StackPanel Orientation="Vertical"/>
          </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
      </ListBox>
    </toolKit:ListBoxDragDropTarget>

</Grid>
Run Code Online (Sandbox Code Playgroud)

我最终在这里(在将数据绑定到之后ListBox)用一个小的列表框调整大小以适应其位于黄色框中间的内容.

没有任何数量HorizontalAlignment=Stretch似乎能够让它填充父框.

我怎样才能ListBox填补Grid

silverlight listbox

2
推荐指数
1
解决办法
1066
查看次数

尝试使用SVCUTIL.EXE创建Web服务代理时出现"未生成代码"错误

当尝试使用SVCUTIL.EXE(在命令行或通过Visual Studio)创建Web服务代理(WCF )时,我得到以下无意义的错误消息.

注意:该服务没有任何问题,因为它可以在另一台机器上正常工作.这是Windows的新安装,该服务在我的本地盒子上.使用不同机器上的URL在我的机器上生成相同的代理工作正常.

这是怎么回事?!

Microsoft (R) Service Model Metadata Tool
[Microsoft (R) Windows (R) Communication Foundation, Version 4.0.30319.1]
Copyright (c) Microsoft Corporation.  All rights reserved.

Attempting to download metadata from 'https://ws1.example.com/ShoppingCartWS/WCF/ShoppingCartWCF.svc?wsdl' using WS-Metadata Exchan
Error: Cannot import wsdl:portType
Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.DataContractSerializerMessageCont
Error: Schema with target namespace '' could not be found.
XPath to Error Source: //wsdl:definitions[@targetNamespace='']/wsdl:portType[@name='IShoppingCart']


Error: Cannot import wsdl:binding
Detail: There was an error importing a wsdl:portType …
Run Code Online (Sandbox Code Playgroud)

wcf wcf-client

2
推荐指数
1
解决办法
7045
查看次数

Knockout.js:如果绑定具有给定值,则设置默认文本

text=''每当model.id为null时,我想重置输入字段()的值.

如何绑定输入值以响应可观察对象的某个值?看起来像:

<input type="text" data-bind="text: if (model.value == null) { '' }" />
Run Code Online (Sandbox Code Playgroud)

javascript knockout.js

2
推荐指数
1
解决办法
6577
查看次数

响应4列网格在调整大小时变为3列网格

好的,所以网格显然很棒.过去两天我一直在看基金会,Twitter的Bootstrap,SemanticResponsive.gs,我仍然无法找出一个简单的问题:

I have 4 horizontal sections with an image header and text. 
I want each to take up 25%.
Run Code Online (Sandbox Code Playgroud)

调整屏幕大小时:

I need the rightmost section to disappear
Each remaining section should therefore take up 33%
Run Code Online (Sandbox Code Playgroud)

如果我.span3为12列网格放置类,那么我必须使用javascript将它们更改.span4为不是我想要的.

我已经看过symentic标记(不在代码中放入魔术类),但这只是变得非常复杂,除了Semantic之外,大多数框架都不完全支持.

这看起来很简单,但我有点卡住了.

css responsive-design

2
推荐指数
1
解决办法
1532
查看次数

Angular中的ng-component是什么?

在angular中有两个非常相似的命名指令(或属性)

ng-componentng-container

如果您放ng-component而不用,ng-container则会出现各种奇怪的行为,例如自动插入<router-outlet>

我经常想知道ng-component用户代码中实际上有一个目的。

这是遗产吗?只是内部的吗?它可以解决任何问题吗?

angular ng-container

1
推荐指数
2
解决办法
312
查看次数