在过去一个月左右的时间里,我一直在研究一个大型MVC应用程序,但这是我第一次需要定义一个自定义路由处理程序,而且我遇到了一些问题.基本上我有两个参数要通过.第一个是必需的,第二个是可选的.
我在这里听到这个答案.
这是我的自定义路线:
routes.MapRoute(
"MyRoute",
"{controller}/{action}/{param1}/{param2}",
new {
controller = "MyController",
action = "MyAction",
param1 = "",
param2 = "" // I have also tried "UrlParameter.Optional" here.
}
);
Run Code Online (Sandbox Code Playgroud)
我的动作方法签名:
public ActionResult MyAction(string param1, string param2)
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用URL,http://[myserver]/MyController/MyAction/Test1/Test2那么它就像我期望的那样工作,param1 ="Test1"和param2 ="Test2"
如果我尝试URL,http://[myserver]/MyController/MyAction/Test1则两个参数都为空.
希望有人可以告诉我这里我做错了什么,因为我迷路了.
c# asp.net-mvc url-routing asp.net-mvc-routing asp.net-mvc-3
我们希望在多个SQL Server数据库中进行更新,以将某个表中的所有NULL值更改为空字符串而不是NULL.我们可能会在数百个数据库中执行此操作.表名将始终相同,但列名称可根据前端应用程序的配置方式进行变量(不要判断......我没有创建此系统).
有没有办法在不知道列名的情况下对所有这些列进行更新?
我有一个Grid它的Visibility属性使用绑定到特定模型的布尔属性Converter:
<Grid Visibility="{Binding ElementName=MyTreeView, Path=SelectedItem.MyBoolProperty, Converter={StaticResource boolToVisConverter}}">
<!-- child elements -->
</Grid>
Run Code Online (Sandbox Code Playgroud)
TreeView选择my中的元素时效果很好,但如果未选择任何内容或者TreeView为空,则默认为可见.我需要它默认隐藏.我尝试过使用TargetNullValue=Hidden但是没有用.我想我只是不明白该TargetNullValue属性应该如何在这种情况下工作.
有没有人有任何想法如何获得我正在寻找的功能?
此Web API操作返回HTTP 500(内部服务器错误)状态代码:
public IHttpActionResult Post()
{
return InternalServerError();
}
Run Code Online (Sandbox Code Playgroud)
但是此操作返回HTTP 400(错误请求)状态代码:
public IHttpActionResult Post()
{
return InternalServerError(new Exception());
}
Run Code Online (Sandbox Code Playgroud)
我希望这两个操作都返回500状态代码,第二个操作将一些错误的详细信息放在响应主体中.
我的第一个想法是,这是一个错误,但我想得到一些其他的输入.有没有什么理由说明为什么400应该在第二次行动中而不是500次?
更新:
该方法的文档如下:
使用指定的异常创建System.Web.Http.Results.ExceptionResult(500内部服务器错误).
我在想越来越多这是一个错误.
c# ×2
.net ×1
asp.net ×1
asp.net-mvc ×1
rest ×1
sql ×1
sql-server ×1
t-sql ×1
url-routing ×1
visibility ×1
wpf ×1
xaml ×1