使用MVC时,返回adhoc Json很容易.
return Json(new { Message = "Hello"});
Run Code Online (Sandbox Code Playgroud)
我正在使用新的Web API寻找此功能.
public HttpResponseMessage<object> Test()
{
return new HttpResponseMessage<object>(new { Message = "Hello" }, HttpStatusCode.OK);
}
Run Code Online (Sandbox Code Playgroud)
这会引发异常,因为DataContractJsonSerializer
无法处理匿名类型.
我有这个替换此JsonNetFormatter基于Json.Net.如果我使用,这可行
public object Test()
{
return new { Message = "Hello" };
}
Run Code Online (Sandbox Code Playgroud)
但是我没有看到使用Web API的重点,如果我不回来HttpResponseMessage
,我会更好地坚持使用vanilla MVC.如果我尝试使用:
public HttpResponseMessage<object> Test()
{
return new HttpResponseMessage<object>(new { Message = "Hello" }, HttpStatusCode.OK);
}
Run Code Online (Sandbox Code Playgroud)
它将整个序列化HttpResponseMessage
.
任何人都可以指导我一个解决方案,我可以在其中返回匿名类型HttpResponseMessage
?
我是Objective-C和iPhone开发的新手,在尝试将文本放在表格单元格中时遇到了一个问题.我搜索了谷歌,但解决方案是针对旧的SDK错误已修复,这些对我不起作用.
一些代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}
cell.textLabel.text = @"Please center me";
cell.textLabel.textAlignment = UITextAlignmentCenter;
return cell;
}
Run Code Online (Sandbox Code Playgroud)
以上内容并非文本的中心.
我也试过了willDisplayCell方法:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
cell.textLabel.textAlignment = UITextAlignmentCenter;
}
Run Code Online (Sandbox Code Playgroud)
我尝试了一些旧的解决方案:
UILabel* label = [[[cell contentView] subviews] objectAtIndex:0];
label.textAlignment = UITextAlignmentCenter;
return cell;
Run Code Online (Sandbox Code Playgroud)
这些都不会对文本对齐产生任何影响.我已经没有想法了,任何帮助都会受到最高的赞赏.
提前干杯.
我正在向现有的MVC应用程序添加一些Web API服务.我有一个模型绑定器,用于我的MVC控制器,以获取存储在CustomIdentity中的用户对象.我正在尝试为我的Web API操作重现这一点.
在我可以使用的MVC控制器或其绑定器中
controllerContext.HttpContext.User.Identity
Run Code Online (Sandbox Code Playgroud)
ApiController没有HttpContext对象.无论如何从Web API访问IIdentity对象?
在SQL Server中将字符串中每个单词的第一个字母大写的最佳方法是什么?
我正在尝试测试一些依赖于ControllerContext.RouteData中的Values属性的应用程序逻辑.
到目前为止我有
// Arrange
var httpContextMock = new Mock<HttpContextBase>(MockBehavior.Loose);
var controllerMock = new Mock<ControllerBase>(MockBehavior.Loose);
var routeDataMock = new Mock<RouteData>();
var wantedRouteValues = new Dictionary<string, string>();
wantedRouteValues.Add("key1", "value1");
var routeValues = new RouteValueDictionary(wantedRouteValues);
routeDataMock.SetupGet(r => r.Values).Returns(routeValues); <=== Fails here
var controllerContext = new ControllerContext(httpContextMock.Object, routeDataMock.Object, controllerMock.Object);
Run Code Online (Sandbox Code Playgroud)
单元测试失败:System.ArgumentException:不可覆盖的成员上的设置无效:r => r.Values
由于构造函数是RouteData(RouteBase,IRouteHandler),因此创建伪RouteData也不起作用.
这里重要的类是抽象类RouteBase,它有GetRouteData(HttpContextBase)方法,它返回一个RouteData实例,我试图伪造的类.把我带到圈子里!
对此的任何帮助都是最受欢迎的.
作为我观点的一部分,我有:
<ul data-bind="foreach: caseStudies">
<li><a data-bind="text: title, attr: { href: caseStudyUrl }"></a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我想在淘汰更新DOM后运行一些第三方代码.
caseStudies(data);
thirdPartyFuncToDoStuffToCaseStudyLinks(); <-- DOM not updated at this point.
Run Code Online (Sandbox Code Playgroud)
关于我如何能够在正确的时间进入淘汰赛的想法?
在C#中有一个SqlDateTime.MinValue
和SqlDateTime.MaxValue
,但我找不到一个SmallDateTime
来自SQL Server 的数据类型.
var smallDateTimeMin = DateTime(1900, 1, 1);
var smallDateTimeMax = DateTime(2079, 6, 6);
Run Code Online (Sandbox Code Playgroud)
是否有一个或我需要自己实现这个?
我有一个简单的类我正在序列化.
[DataContract(Name = "Test", Namespace = "")]
public class Test
{
[DataMember(Order = 0, Name = "Text")]
public string Text { get; set; }
public Test() {}
}
Run Code Online (Sandbox Code Playgroud)
这将启动以下XML:
<Test>
<Text>Text here</Text>
</Test>
Run Code Online (Sandbox Code Playgroud)
我想要的是:
<Test>
<Text type="MyType">Text here</Text>
</Test>
Run Code Online (Sandbox Code Playgroud)
如何添加XML元素的属性?
提前致谢.
我正在尝试创建一个多项目模板.我希望子项目名称包含解决方案名称.我尝试了以下但是$ safeprojectName $由于某种原因在根模板中不起作用.它尝试使用名称中的$ safeprojectName $创建文件夹,而不是实际的项目名称.
<VSTemplate Version="2.0.0" Type="ProjectGroup"
xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>Default Solution</Name>
<Description>An example of a multi-project template</Description>
<Icon>Icon.ico</Icon>
<ProjectType>CSharp</ProjectType>
</TemplateData>
<TemplateContent>
<ProjectCollection>
<SolutionFolder Name="$safeprojectName$.Web">
<ProjectTemplateLink ProjectName="$safeprojectName$.Web">
Src\Web\MyTemplate.vstemplate
</ProjectTemplateLink>
</SolutionFolder>
</ProjectCollection>
</TemplateContent>
</VSTemplate>
Run Code Online (Sandbox Code Playgroud)
我已经对此做了大量的阅读,并且已经使用IWizard接口创建了一个程序集,该接口创建了一个参数$ solutionName $.然后我使用了以下模板.
<VSTemplate Version="2.0.0" Type="ProjectGroup"
xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>Default Solution</Name>
<Description>An example of a multi-project template</Description>
<Icon>Icon.ico</Icon>
<ProjectType>CSharp</ProjectType>
</TemplateData>
<TemplateContent>
<ProjectCollection>
<SolutionFolder Name="$solutionName$.Web">
<ProjectTemplateLink ProjectName="$solutionName$.Web">
Src\Web\MyTemplate.vstemplate
</ProjectTemplateLink>
</SolutionFolder>
</ProjectCollection>
</TemplateContent>
<WizardExtension>
<Assembly>DefaultSoloutionWizard, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=f753ddb61a28cb36, processorArchitecture=MSIL</Assembly>
<FullClassName>DefaultSoloutionWizard.WizardImplementation</FullClassName>
</WizardExtension>
</VSTemplate>
Run Code Online (Sandbox Code Playgroud)
然而,这也会因同样的问题而失败.我是不是想做不可能的事?对此的任何帮助都是最受欢迎的.
我是LINQ的新手,我正在尝试从表格到图表创建一些数据点.此表中的三个重要字段是id,时间和值.我正在编写一个查询来获取所选id的设定时间内的平均值.我写的LINQ如下:
var value = (from t in _table
where t.Id == id
&& t.Time >= intervalStartTime
&& t.Time <= intervalEndTime
select t.Value).Average();
Run Code Online (Sandbox Code Playgroud)
但是,这会在运行时崩溃:
"无法将null值分配给类型为System.Decimal的成员,这是一个不可为空的值类型.."
在某些时间间隔没有数据,所以SQL LINQ生成返回null,我希望COALESCED为0但反而崩溃了应用程序.有没有办法编写这个LINQ查询,以便能够正确处理这个问题?
表定义使事情更清晰:
[Serializable]
[Table(Name = "ExampleTable")]
public class ExampleTable
{
[Column(Name = "Id")]
public int Id { get; set; }
[Column(Name = "Time")]
public DateTime Time { get; set; }
[Column(Name = "Value")]
public int Value{ get; set; }
}
Run Code Online (Sandbox Code Playgroud) c# ×6
.net ×2
sql ×2
asp.net-mvc ×1
datacontract ×1
ios4 ×1
iphone ×1
javascript ×1
json ×1
json.net ×1
knockout.js ×1
linq ×1
moq ×1
objective-c ×1
sql-server ×1
string ×1
templates ×1