- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一张 table
abstract public class TableDefault
{
[Index(Unique = true)]
[Alias("rec_version")]
[Default(typeof(int), "nextval('rec_version_seq')")]
[Required]
public int Rec_Version { get; set; }
[Index(Unique = true)]
[Alias("rec_id")]
[Default(typeof(int), "nextval('rec_id_seq')")]
[Required]
public int Rec_Id { get; set; }
[Default(typeof(DateTime), "now()")]
[Alias("rec_created")]
[Required]
public DateTime Rec_Create { get; set; }
[References(typeof(UserAuth))]
[Alias("rec_created_id")]
[Required]
public int Rec_Created_Id { get; set; }
[Default(typeof(string), "'1'")]
[Required]
[StringLength(1)]
public string Status { get; set; }
[Default(typeof(DateTime), "now()")]
[Alias("rec_modified")]
[Required]
public DateTime Rec_Modified { get; set; }
[References(typeof(UserAuth))]
[Alias("rec_modified_id")]
[Required]
public int Rec_Modified_Id { get; set; }
}
和
[Alias("dmdvcs")]
public class DmDvcs : TableDefault
{
[Alias("ma_dvcs")]
[PrimaryKey]
[Default(typeof(string), "''")]
public string Ma_Dvcs { get; set; }
[Required]
[Default(typeof(string), "''")]
[Alias("ten_dvcs")]
public string Ten_Dvcs { get; set; }
}
这是我的服务栈
[Route("/dmdvcs/{Rec_Id}/{Rec_Version}/ten_dvcs/{Ten_Dvcs}", "PUT")]
public class Update_DmDvcs_Ten : IReturn<DmDvcs>
{
public string Ten_Dvcs { get; set; }
public int Rec_Version { get; set; }
public int Rec_Id { get; set; }
}
public object Put(Update_DmDvcs_Ten request)
{
if (string.IsNullOrEmpty(request.Ten_Dvcs))
throw new ArgumentNullException("Ten_Dvcs");
if (request.Rec_Id == null)
throw new ArgumentNullException("Rec_Id");
if (request.Rec_Version == null)
throw new ArgumentNullException("Rec_Version");
var eXistsRow = Db.Select<DmDvcs>(q => q.Rec_Id == request.Rec_Id);
if (eXistsRow.Count == 0)
throw HttpError.NotFound("Row {0} does not exist".Fmt(request.Rec_Id));
else if (eXistsRow.First().Rec_Version != request.Rec_Version)
throw HttpError.NotFound("Row {0} need update".Fmt(request.Rec_Id));
IAuthSession session = this.GetSession();
int rec_version_seq = Db.GetScalar<int>("SELECT nextval('rec_version_seq')");
DmDvcs updateRow = new DmDvcs
{
Ten_Dvcs = request.Ten_Dvcs,
Rec_Modified = DateTime.Now,
Rec_Modified_Id = session.UserAuthId.ToInt(0),
Rec_Version = rec_version_seq
};
Db.UpdateOnly(updateRow,
ev => ev.Update(c => new { c.Ten_Dvcs, c.Rec_Modified, c.Rec_Modified_Id, c.Rec_Version })
.Where(p => p.Rec_Id == request.Rec_Id));
var newRec = Db.Select<DmDvcs>(p => p.Rec_Id == request.Rec_Id);
return newRec;
}
在 REST 控制台上:
http://localhost:9998/dmdvcs/8479/8498/ten_dvcs/TestName
返回
[{
"Ma_Dvcs": "DEMO.000",
"Ten_Dvcs": "TestName",
"Rec_Version": 8499,
"Rec_Id": 8479,
"Rec_Create": "2013-07-01T13:35:02.5430000",
"Rec_Created_Id": 1,
"Status": "1",
"Rec_Modified": "2013-07-01T13:42:37.6910000",
"Rec_Modified_Id": 1
}]
但是在 Visual Studio 测试中
[TestMethod]
public void DmDvcs_update_dvcs_ten()
{
try
{
var client = (ServiceClientBase)GetClientWithUserPassword();
client.AlwaysSendBasicAuthHeader = true;
DmDvcs getRow = client.Get(new Get_All_Dvcs())[0];
DmDvcs response = client.Put(new Update_DmDvcs_Ten { Rec_Version = getRow.Rec_Version, Rec_Id = getRow.Rec_Id, Ten_Dvcs = getRow.Ten_Dvcs });
Assert.AreNotEqual(response, null);
}
catch (WebServiceException webEx)
{
Assert.Fail(webEx.Message);
}
}
有错误
System.Runtime.Serialization.SerializationException was unhandled by user code
HResult=-2146233076
Message=Type definitions should start with a '{', expecting serialized type 'DmDvcs', got string starting with: [{"Ma_Dvcs":"DEMO.HNO","Ten_Dvcs":"34234","Rec_Ver
Source=ServiceStack.Text
StackTrace:
at ServiceStack.Text.Common.DeserializeTypeRefJson.StringToType(Type type, String strType, EmptyCtorDelegate ctorFn, Dictionary`2 typeAccessorMap)
at ServiceStack.Text.Common.DeserializeType`1.<>c__DisplayClass3.<GetParseMethod>b__1(String value)
at ServiceStack.Text.Json.JsonReader`1.Parse(String value)
at ServiceStack.Text.JsonSerializer.DeserializeFromString[T](String value)
at ServiceStack.Text.JsonSerializer.DeserializeFromStream[T](Stream stream)
at ServiceStack.ServiceModel.Serialization.JsonDataContractDeserializer.DeserializeFromStream[T](Stream stream)
at ServiceStack.ServiceClient.Web.JsonServiceClient.DeserializeFromStream[T](Stream stream)
at ServiceStack.ServiceClient.Web.ServiceClientBase.HandleResponse[TResponse](WebResponse webResponse)
at ServiceStack.ServiceClient.Web.ServiceClientBase.Send[TResponse](String httpMethod, String relativeOrAbsoluteUrl, Object request)
at ServiceStack.ServiceClient.Web.ServiceClientBase.Put[TResponse](IReturn`1 request)
at TSNext.Service.Tests.DmDvcsTests.DmDvcs_update_dvcs_ten() in z:\future13\api\3SNext.Service.Tests\DmDvcsTests.cs:line 170
InnerException:
我的 ServiceStack 发生了什么。我正在使用 ServiceStack 3.9.54 和 PostgreSQL 9.2
最佳答案
此错误通常表示 JSON 负载与您尝试反序列化的模型的形状不匹配。
在您的请求 DTO 中,它表示此服务将返回 DmDvcs
波科:
public class Update_DmDvcs_Ten : IReturn<DmDvcs> { ... }
但是您返回的是 List<DmDvcs>
相反:
public object Put(Update_DmDvcs_Ten request)
{
...
var newRec = Db.Select<DmDvcs>(p => p.Rec_Id == request.Rec_Id);
return newRec;
}
这就是为什么您的 JSON 看起来像:
[{ "Ma_Dvcs": "DEMO.000",.. }]
而不是它期望的单个 DmDvcs 对象,即:
{"Ma_Dvcs": "DEMO.000",..}
为了防止将来出现这种情况,我建议指定返回类型,使其与您的 IReturn<T>
匹配响应标记,如果您没有返回预期的内容,将显示类型错误。
public List<DmDvcs> Put(Update_DmDvcs_Ten request) { ... }
关于ServiceStack JSON 类型定义应以 '{' 开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17399249/
2种参数:尺寸和价格。目前,我只能单击选择/突出显示尺寸列中的一个,也只能单击选择/突出显示价格列中的一个,而不会影响另一个列中的一个。 当我点击尺寸时,会添加一个 URL 参数“#size=4”。单
在css命名约定中,有什么原因,一些object最好以前缀o-和component开头> 以 c- 开头? 我知道 o- 代表 object 而 c- 代表 component,但为什么不呢?难道我们
这就很迷惑了,一下子,下面的代码就不行了。尝试让我的 Android 很好地显示网页已经显示的内容: HttpClient httpclient = new DefaultHttpClient();
我正在将我的网站发布到我无法控制的 IIS 服务器,我想从代码隐藏中了解它的 URL 是否以“http”或“https”开头。 首先,我在本地尝试了这两种解决方案,都返回了正确的值(“http”):
如果我运行: sbin/start-dfs.sh 然后它实际上并没有启动一个名称节点尽管打印: Starting namenodes on [0.0.0.0] 0.0.0.0: starting na
我正在开发一个包含一些数组的模块。现在我的数组包含: $omearray = array ( '#title' = 'title', 0 = array ( 'another array',
对于 PMD,我希望有一个规则来警告我那些以 my 开头的丑陋变量。 这意味着我必须接受所有不以my开头的变量。 所以,我需要一个正则表达式(re),其行为如下: re.match('myVar')
出于某种奇怪的原因,当我尝试使用 URLConnection 获取网页源时,我在输出中得到“null”。有人可以解释一下吗? 我的方法: public String getPageSource()
如何批量检查某个字符串(记录文本文件中的行)是否以特定单词开头? 我知道如何检查句子/行(字符串)中是否存在单词(子字符串),但我如何检查天气是否以这个词开头? 谢谢:) 最佳答案 这可以通过 FIN
我有一个列表,其中包含多个网址和一些字符串,例如#skipsideNav、#content。我正在从这些字符串中分离出 url if link.startswith('/'): local_u
我有以下 html 标记: 我想选择类 bubble bubble_white 和 bubble bubble_black。我正在考虑下面的代码,但它不起作用: $(".bubbl
我有一个用于文件名验证的正则表达式。在这里: /^[0-9a-zA-Z\^\&\'\@\{\}\[\]\,\$\=\!\-\#\(\)\.\%\+\~\_; ]+$/ 如何更改它以检查文件名不是以
我正在构建一个自动填充函数,它接受一个字符串输入并返回一个字符串建议列表。 Sequelize 的 iLike:query返回出现查询字符串的每个字符串。我想支持查询是前缀的字符串。例如当query=
我首先知道这可能是有史以来看起来最糟糕的正则表达式,但这里是。 我有这个正则表达式 (?:http://)?(?:www.)?youtu(?:be)?.(?:[a-z]){2,3}(?:[a-z/?=
尝试读取文件并根据行创建字典,跳过以#符号开头的行 文件示例: param1=val1 # here is comment 我的功能: def readFromFile(name): conf
我的程序正在读取文本文件并根据文本执行操作。但是文本的第一行是有问题的。显然它以“”开头。这弄乱了我的 startsWith() 检查。 为了理解这个问题,我使用了这段代码: System.ou
我的印象是变量名只能以字母和 _ 开头,但是在测试时,我还发现变量名可以以 $ 开头,如下所示: 代码 #include int main() { int myvar=13; int
我试过这个... Dim myMatches As String() = System.Text.RegularExpressions.Regex.Split(postRow.Item("Post")
开头
我正在使用CKEditor,默认情况下在内容的开头添加了。 即使将enterMode设置为,它也只会影响Enter键的作用,并保留开始的。 我遇到的问题是,如果文本以标记开头,它将围绕它包装,并且图像
我有一个List ,其中有五个字符串: abc def ghi jkl mno 我还有另一个字符串“pq”,我需要知道列表中的每个字符串是否都不以“pq”开头-我将如何使用LINQ(.NET 4.0)
我是一名优秀的程序员,十分优秀!