我最近下载了VS2010的beta 2并开始使用ASP.NET MVC2.最初的开发是使用Casini完成的,但现在我想从IIS 7.5运行应用程序(我正在运行Windows 7).我已经安装了IIS6配置数据库兼容性,我以管理员身份运行VS2010,因此我可以使用项目设置的"Web"选项卡中的"创建虚拟目录"按钮.这在IIS中创建了Web应用程序条目,但它不起作用.
当我转到主页面(http:// localhost/MyMvcApp /)时,我收到HTTP 403错误.当我直接进入其中一个子页面(http:// localhost/MyMvcApp/Home /)时,我得到一个HTTP 404.
所以我想由于某种原因URL路由不起作用.我已经将UrlRouting添加为web.config的模块和处理程序.在我的搜索中,这是一些类似问题的解决方案.但对我来说,这仍然无效.
我的web.config有趣的部分是这样的:
<system.web>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
<membership>
<providers>
<clear />
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
<profile>
<providers>
<clear />
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" /> …Run Code Online (Sandbox Code Playgroud) 我们有一个现有的SOAP Web服务接口,我们希望使用WCF为新应用程序实现它.除了一个小细节外,这似乎工作得很好.函数返回类型的XML命名空间必须与Web服务本身的XML命名空间不同.而对于我的生活,我无法让它发挥作用.
我用一个小样本项目重新创建了同样的问题.WCF界面:
[XmlSerializerFormat]
[ServiceContract(Namespace = "urn:outer-namespace")]
public interface IService1
{
[OperationContract]
MyClass DoStuff(int value);
}
[Serializable]
public class MyClass
{
[XmlElement(ElementName = "DataString")]
public string MyString { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Web服务实现:
public class Service1 : IService1
{
public MyClass DoStuff(int value)
{
return new MyClass { MyString = "Wooh!" };
}
}
Run Code Online (Sandbox Code Playgroud)
然后将此Web服务的响应序列化为:(省略SOAP内容)
<DoStuffResponse xmlns="urn:outer-namespace">
<DoStuffResult>
<DataString>Wooh!</DataString>
</DoStuffResult>
</DoStuffResponse>
Run Code Online (Sandbox Code Playgroud)
但是我们希望<DoStuffResult>是xmlns ="urn:inner-namespace".
我尝试在接口函数或Web服务函数上添加[return:XmlElement(...)],但这不需要.此外,MyClass类定义上的[XmlType]或[XmlRoot]不起作用.
有没有人知道如何更改作为WCF Web服务函数返回值的对象的序列化XML名称空间(或元素名称)?
由于安全性要求,我们需要创建的所有运行Web应用程序的浏览器都必须禁用所有客户端脚本.所以这意味着没有Javascript.不幸的是,Web Forms对Javascript的使用相当多.登录控件不使用Javascript,但按钮不起作用(它调用Javascript函数__doPostback()).因此,要使其工作,我们需要手动编程所有表单(ASP Classic或PHP方法).但我想知道是否有一个可用于ASP.NET的框架,它提供了具有所有功能的常规ASP.NET控件(treeview,gridview等),但是它不使用Javascript并且不需要程序员编写大量逻辑?
更新: 为了澄清,我知道ASP.NET MVC是一个有用的选项,但它不会给我一个很好的GridView.所以我想知道是否有100%功能,100%无javascript替代标准ASP.NET控件.
谢谢.
Update2: 已经有一段时间了,我从来没有找到我想要的确切答案.可能因为我想要的东西不存在.所以我会选择ASP.NET MVC,这是下一个最好的事情.
我有一个对象列表.这些对象由一个自定义类组成,该类基本上包含两个字符串字段String1和String2.
我需要知道的是,如果这些字符串中的任何字符串在该列表中重复.所以我想知道是否objectA.String1 == objectB.String1,或ObjectA.String2 == ObjectB.String2,或ObjectA.String1 == ObjectB.String,或ObjectA.String2 == ObjectB.String1.
另外,我想将包含重复字符串的每个对象标记为具有重复的字符串(HasDuplicate对象上有bool ).
因此,当复制检测运行时,我想简单地在列表上进行操作,如下所示:
foreach (var item in duplicationList)
if (item.HasDuplicate)
Console.WriteLine("Duplicate detected!");
Run Code Online (Sandbox Code Playgroud)
这似乎是用LINQ解决的一个很好的问题,但我不能为我的生活找出一个好的查询.因此我使用'good-old'foreach解决了它,但我仍然对LINQ版本感兴趣.