在ASP.NET 2中,如何创建允许通过字符串id(例如ProductCode)查找对象(例如Product)的路由?通过它的整数id(例如ProductId)查找同一个对象的路由是自动的,所以我实际上并不知道它是如何工作的.
id的自动路由是:
/Product/1
Run Code Online (Sandbox Code Playgroud)
如何创建使用字符串ID的第二条路线?
/Product/red-widget
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能使这两条路线都可用?
我在我的asp.net web API项目中使用JSON/CSV文件,并尝试使用CSVHelper和ServiceStack.Text库,但无法使其工作.
包含数组的JSON文件是动态的,可能包含任意数量的字段
我使用streamreader读取文件,然后需要将其转换为CSV文件,以便最终用户下载.
示例文件文本
[{"COLUMN1":"a","COLUMN2":"b","COLUMN3":"c","COLUMN4":"d","COLUMN5":"e"},
{"COLUMN1":"a","COLUMN2":"b","COLUMN3":"c","COLUMN4":"d","COLUMN5":"e"}]
Run Code Online (Sandbox Code Playgroud)
JSON到CSV
public static string jsonStringToCSV(string content)
{
var jsonContent = (JArray)JsonConvert.DeserializeObject(content);
var csv = ServiceStack.Text.CsvSerializer.SerializeToCsv(jsonContent);
return csv;
}
Run Code Online (Sandbox Code Playgroud)
这不会导致我的CSV数据
然后一些文件是带有逗号或制表符的分隔符类型,我想利用CSVHelper将CSV字符串动态转换为IEnumerable
public static IEnumerable StringToList(string data, string delimiter, bool HasHeader)
{
using (var csv = new CsvReader(new StringReader(data)))
{
csv.Configuration.SkipEmptyRecords = true;
csv.Configuration.HasHeaderRecord = HasHeader;
csv.Configuration.Delimiter = delimiter;
var records = csv.GetRecords();
return records;
}
}
Run Code Online (Sandbox Code Playgroud) 任何人都可以推荐专为合并C#代码而设计的合并工具吗?我追求的功能:
基本上,我正在寻找一种比Winmerge等经典文件合并工具更具体的工具.通用合并工具的问题在于它们逐行检测到更改,这使得识别已经移动但仍然完全有效的代码块非常困难,更重要的是,识别结果中的编译错误.
我正在设置CI和D的申请.我创建了一个DEV-Deploy web.config转换,其中包含dev测试环境的连接字符串.
以下是Web.DEV-Deploy.config连接字符串部分的内容:
<connectionStrings xdt:Transform="RemoveAttributes(configSource)">
<add name="DbContext"
providerName="MySql.Data.MySqlClient"
connectionString="CXN_STRING"
xdt:Transform="Insert" xdt:Locator="Match(name)"/>
<add name="elmah"
connectionString="CXN_STRING"
xdt:Transform="Insert" xdt:Locator="Match(name)"/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
它应该看起来像:
<connectionStrings>
<add name="DbContext" providerName="MySql.Data.MySqlClient"
connectionString="CXN_STRING"/>
<add name="elmah" connectionString="CXN_STRING"/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
我正在使用命令行构建,我尝试了以下命令,这些命令都不起作用:
msbuild web\web.csproj /T:Package /P:Configuration=DEV-Deploy /P:TransformConfigFiles=true
msbuild web\web.csproj /T:Package /P:Configuration=DEV-Deploy /t:TransformWebConfig
Run Code Online (Sandbox Code Playgroud)
部署任务如下所示:
web.deploy.cmd /Y /M:https://MACHINEIP:8172/msdeploy.axd -allowUntrusted /U:USERNAME /P:PASSWORD /A:Basic
Run Code Online (Sandbox Code Playgroud)
web.config在部署时看起来像这样:
<connectionStrings configSource="connectionStrings.config"></connectionStrings>
Run Code Online (Sandbox Code Playgroud)
我已经在我的本地计算机上尽我所能测试并且无法复制该问题.我需要做什么才能使转换在构建中正常工作?
我已经在网上寻找这个问题的答案,但老实说,我似乎找不到MVC路线的好参考.
我的User对象有一个UserController.可以在用户上编辑,保存,查看等,因此我在该控制器中有操作来处理每个操作.这一切都很简单.但我最近创建了一个新的UserProfile对象,人们也可以编辑,查看等.而不是仅为UserProfile创建一个全新的控制器,我想利用现有的UserController.因此,要查看用户的个人资料,我希望网址为:
http://www.example.com/User/Profile/{userProfileID}
Run Code Online (Sandbox Code Playgroud)
要编辑,我希望URL为:
http://www.example.com/User/Profile/Edit/{userProfileID}
Run Code Online (Sandbox Code Playgroud)
UserController中的每个操作都将返回不同的视图页面.
我如何定义处理这种结构的路线?非常感谢.
我有一个全新的asp.net mvc 3项目.我没有以任何方式修改路线.我有一个控制器PageController
和另一个控制器调用ContentController
.
当我浏览到domain.com/Page时,页面控制器上的索引操作将按预期执行并显示索引视图.
当我浏览到domain.com/Content时,我收到404错误.如果我浏览到domain.com/Content/Index,那么它可以正常工作.
如何排除这条路线的故障?
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
Run Code Online (Sandbox Code Playgroud)
我尝试添加其他路线:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Content", …
Run Code Online (Sandbox Code Playgroud) 是否可以设置<select>菜单的样式,如下图所示:
这是一个小提琴,我一直在努力,但无法正确的箭头.
这是HTML:
<select>
<option>Alabama</option>
<option>Alaska</option>
</select>
Run Code Online (Sandbox Code Playgroud)
这是CSS:
select {
background: -webkit-linear-gradient(#C9C9C9, #CCC);
background: -moz-linear-gradient(#C9C9C9, #CCC);
border: 1px solid #ccc;
color: white;
text-shadow: 0 0 4px rgba(0, 0, 0, 0.8);
-webkit-appearance:none;
-moz-appearance:none;
appearance:none;
padding:10px;
}
Run Code Online (Sandbox Code Playgroud)
是否可以像这样设置<select>菜单的样式?
我想在我的主页上插入一个点击呼叫按钮.这是我使用Bootstrap(Bootstrap 3.2.0)构建的第一个站点.
请查看代码并帮我弄清楚我做错了什么.谢谢
您可以在这里访问该网站.
<button type="button" class="btn btn-primary btn-xlg" href="tel:713-992-0916" style="padding:20px;background-color:rgba(0,0,238,.5)">
Click to Call <span class="glyphicon glyphicon-earphone" style="padding-left:10px; padding-right:10px;"></span>713-992-0916
</button>
Run Code Online (Sandbox Code Playgroud) 我想重写网址
http://localhost:51639/home/index?id=123
Run Code Online (Sandbox Code Playgroud)
至
http://localhost:51639/home/product
Run Code Online (Sandbox Code Playgroud)
这是我在Global.asax.cs中的代码
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
Run Code Online (Sandbox Code Playgroud)
我能做什么?非常感谢
我有一个依赖System.Web.Http.WebHost
于我的项目的Web API项目,我在该引用上设置了Copy Local = True,版本(在本例中)是5.2.3.0.
当我通过Web部署将项目发布到服务器时,将发布此程序集的旧版本(5.2.2.x).这似乎只影响某些人在发表时而不是其他人.
我们在其他项目中遇到了与其他程序集相同的问题,因此这只是一个例子.我可以将受影响的程序集添加到服务器的GAC或其他东西,以便在受到影响的用户发布时不会死亡,但我想知道这是如何发生的以及如何避免它.