客户端接收正式的JSON内容"{\"Id\":[1,2,3],\"Size\":56}",但在反序列化字节数组时出错.
1以下语句中出现错误
IRestResponse<key> response = client.Execute<key>(request);
Run Code Online (Sandbox Code Playgroud)
2错误消息是"没有为此对象定义无参数构造函数".
3客户端大小的对象类与服务器端的对象类相同:
public class key
{
public byte[] id { get; set; }
public int Size { set; get; }
}
Run Code Online (Sandbox Code Playgroud)
4我尝试通过JSON格式传递包含字符串和整数的对象,这一切都很好但是字节数组.
var client = new RestClient("http://10.0.2.2:50670/api");
var request = new RestRequest("Inventory", Method.GET);
request.OnBeforeDeserialization = resp => { resp.ContentType = "application/json"; };
// execute the request to return a list of InventoryItem
RestResponse<JavaList<InventoryItem>> response = (RestResponse<JavaList<InventoryItem>>)client.Execute<JavaList<InventoryItem>>(request);
Run Code Online (Sandbox Code Playgroud)
返回的内容是JSON字符串,即对象数组.以下是它的简短摘录:
[{"Id":1,"Upc":"1234567890","Quantity":100,"Created":"2012-01-01T00:00:00","Category":"Tequila","TransactionType":"Audit","MetaData":"PATRON 750ML"},{"Id":2,"Upc":"2345678901","Quantity":110,"Created":"2012-01-01T00:00:00","Category":"Whiskey","TransactionType":"Audit","MetaData":"JACK DANIELS 750ML"},{"Id":3,"Upc":"3456789012","Quantity":150,"Created":"2012-01-01T00:00:00","Category":"Vodka","TransactionType":"Audit","MetaData":"ABSOLUT 750ml"}]
Run Code Online (Sandbox Code Playgroud)
错误消息:
由于对象的当前状态,操作无效
这有什么不对?我InventoryItem的属性与JSON字符串中的每个对象相同.我错过了一步吗?
AJAX呼叫
$.ajax({
url: '/api/Inventory',
cache: false,
type: 'POST',
data: json,
contentType: 'application/json, charset=utf-8',
statusCode: {
201: function (data) {
console.log(data);
viewModel.items.push(data);
}
}
});
Run Code Online (Sandbox Code Playgroud)
已发送数据(json)/请求有效负载
{"Id":0,"Upc":"3456789012","Quantity":"200","Category":"Vodka","TransactionType":"Audit","MetaData":"ABSOLUT 750ml"}
Run Code Online (Sandbox Code Playgroud)
响应错误
没有MediaTypeFormatter可用于从媒体类型为"未定义"的内容中读取"InventoryItem"类型的对象."
路由POST方法
public HttpResponseMessage PostItem(InventoryItem item)
Run Code Online (Sandbox Code Playgroud)
JSON字符串中的所有属性都存在于InventoryItem模型中.
一个类似的问题就复杂类型建议从Beta升级到RC来修复模型绑定的变化,这是我做的事.
如果问题不明显,我该如何纠正这个错误?如果我将[FromUri]属性添加到Routed POST方法,那么AJAX调用将正确路由,但为空InventoryItem.如果您需要任何其他信息,请告诉我.
我使用谷歌地图Javascript API V3,最近我的地图上的图标没有出现在IE9中.
为了了解它的底部,我打开了IE的开发人员工具.当我刷新地图时,图标出现了!但是,当我关闭IE并重新开始时,图标不存在.再次,如果我打开开发人员工具并刷新,则会显示图标.
我的问题是这个主题的标题,访问IE的开发人员工具时启用了什么,这允许我的Google地图上的图标出现?
简而言之,我想将图像的二进制数据发送到我的处理程序,该处理程序将作为字节数组保存在DB中.使用readAsBinaryString(f)我的Javascript 读取文件输入的值,我会得到如下输出:
GIF89a,úæÿÿÿ2c½3fÌ Smaäµééúþc«T.[ÈéùAtεÚõ[ãX߯î*[µc³8Ûõüÿfj¥æ§ÈïÛå÷ËØñI}ÓQ×
*\»q£E}Ûÿå§ÓõþÿIÛv¤Þ´Åè«æ ³][us¬çAy×MÞ,a½«ÔóZÝL2äëùQ×(Eq<pË5V¨·ÏIÓ¨»åQßY¥3bØÈ
æ¬z³é<uÓ3£ÎñE¾á÷RÛR¢K®ÎØØìÍAtÓÑÔØrÀ-hݪÑïôõüR|ÎäóÖUËåæçXÔw»^s®ëI}ÛQ}ÔEÛ·Îñ½Óêd»Ì
ÌëöåóôöÖàñE×Cr¿C¤3óúëLÍYÜ3fõûöÑðû Øûÿõw²ñ`ª»ßÀy|Á¿ÃIuÔM×ûñû{¹R4¼ìe¡äl«ç!ÿNETSCA
PE2.0!ÿXMP DataXMP<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpm
eta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02
/06-14:56:27 // etc..
Run Code Online (Sandbox Code Playgroud)
该数据通过AJAX发送:
$.ajax({
url: theUrl,
type: 'POST',
data: { Image: image } // image = data above
});
Run Code Online (Sandbox Code Playgroud)
这是二进制字符串?当我将此字符串发送到我的处理程序(IHttpHandler)时,为了将其存储到字节数组中,如果我将编码设置为ISO-8859-1,我可能只获取字节.
public void ProcessRequest (HttpContext aContext)
{
// This works as long as requestValidationMode = "2.0" in web.config
// Is there a way to bypass HttpRequestValidationException just on
// THIS data?
byte[] imageBytes = System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(_Context.Request["Image"]);
//... …Run Code Online (Sandbox Code Playgroud) 我想从我的数据库中获取图像,并将其用作背景.这是微不足道的,但是有一种比我目前的方法更好/更快的方式.
目前,我使用Javascript(在<head>)加载我的背景图像,因为我的CSS是链接而不是内部:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type='text/javascript'>
$(document).ready(function(){
$('body').css('background', 'url(/_images/galleries/lg_<?php echo getBackgroundImage(); ?>) no-repeat top center white');
});
</script>
Run Code Online (Sandbox Code Playgroud)
加载页面后,加载背景大约需要半秒钟.我假设延迟可以归因于加载外部JS等.此外,上面的代码作为一个组件包含在内,这样我就不必在网站的每个页面中复制/粘贴该代码.该<body>不是在这包括组件包围.
有更快更好的方法吗?
使用ASP.NET MVC 4 Web API
public IEnumerable<Item> GetAll(GetItemRequest request) {
Run Code Online (Sandbox Code Playgroud)
这会引发错误,Object引用未设置为对象的实例.,其中request为null.
public IEnumerable<Item> GetAll(int itemId) {
Run Code Online (Sandbox Code Playgroud)
这工作正常,其中itemId非null.
GetItemRequest model有一个属性, public int itemId { get; set; }
我错过了什么?
我Item上课了
public class Item {
//...
public DateTime CreateDate { get; set; }
public DateTime EndDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在一种方法中,我有List<Item> items.我如何比在列表中循环更简洁地查询日期差异的平均值?
double days = 0;
int total = 0;
foreach (var @t in results)
{
if (@t.EndDate != null)
{
total++;
TimeSpan ts = (TimeSpan)(@t.EndDate - @t.CreateDate);
days = ts.TotalDays;
}
}
double avg = days / total;
Run Code Online (Sandbox Code Playgroud) 我有Windows 7.我最初使用Visual Studio 2010 Express,并安装了ASP.NET MVC 4 RC.因为我有一个学生帐户并且需要一些Pro功能,所以我安装了VS 2010 Professional.但是,ASP.NET MVC 4模板不是一个选项.
我使用Web安装程序来安装ASP.NET MVC 4和SP1,但模板仍然没有显示.我卸载了Express,并尝试重新安装MVC 4和SP1,但仍然没有.
此外,还没有可用的MVC 3模板.
我该怎么办?您还需要哪些其他信息?
让我们看看我是否可以逐步明确:
namespace InventoryManager.Controllers
{
public class InventoryController : ApiController
{
private readonly IInventoryRepository repository;
//...
public HttpResponseMessage DeleteItem(int id)
{
// Executes fine
repository.Remove(id);
return new HttpResponseMessage(HttpStatusCode.NoContent);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是执行以下Remove定义的方法InventoryRepository:
namespace InventoryManager.Models
{
public class InventoryRepository : IInventoryRepository
{
private InventoryContext context;
//...
public void Remove(int id)
{
InventoryItem item = context.Items.Find(id);
// Executes fine
context.Items.Remove(item);
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我检查我的数据库,没有删除任何项目.为什么是这样?可能缺少某些信息,请告诉我您还需要什么.
我在调试这个问题是因为我不在我的元素中.如果您有调试方法,或者我可以查找某些事情/关键字以帮助解决我的问题,我将非常感激.
c# ×6
asp.net-mvc ×3
asp.net ×2
javascript ×2
restsharp ×2
bytearray ×1
css ×1
google-maps ×1
jquery ×1
json ×1
linq ×1
linq-to-sql ×1
php ×1