小编Phi*_*hil的帖子

如何接受文件POST

我正在使用asp.net mvc 4 webapi beta来构建休息服务.我需要能够从客户端应用程序接受POSTed图像/文件.这可能使用webapi吗?以下是我目前使用的操作方式.有谁知道这应该如何工作的一个例子?

[HttpPost]
public string ProfileImagePost(HttpPostedFile profileImage)
{
    string[] extensions = { ".jpg", ".jpeg", ".gif", ".bmp", ".png" };
    if (!extensions.Any(x => x.Equals(Path.GetExtension(profileImage.FileName.ToLower()), StringComparison.OrdinalIgnoreCase)))
    {
        throw new HttpResponseException("Invalid file type.", HttpStatusCode.BadRequest);
    }

    // Other code goes here

    return "/path/to/image.png";
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc-4

242
推荐指数
9
解决办法
36万
查看次数

如何使用JsonTextReader两次

我得到一个json数据流,其中包含一个名为"type"的字段.此类型字段描述了需要在运行时创建的对象类型.看起来我无法使用JsonTextReader两次,我找不到将文本阅读器重置为开头.

using (var streamReader = new StreamReader(stream, Encoding))
using (var jsonTextReader = new JsonTextReader(streamReader))
{
    JToken token = JObject.Load(jsonTextReader);
    var type = (string) token.SelectToken("type");
    var modelType = Type.GetType("Project." + type + ", Project");

    // Fails here
    var obj = serializer.Deserialize(jsonTextReader, modelType);
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息.反序列化对象时出现意外的标记:EndObject.

c# json json.net

11
推荐指数
1
解决办法
9707
查看次数

Asp.Net Core RC1 - > RTM DI更改 - 已删除FromServices

我正在使用AspNet Core 1.0 RTM的结构图.它们似乎已使用属性上的FromServices属性删除.这打破了下面的代码,因为我现在无法注入ClaimsPrincipal.我不知道如何让DI系统获得这个属性.我是否需要创建自定义InputFormatter或其他内容.重新开始工作似乎需要付出很多努力.

Startup.cs

public class Startup {
    public IServiceProvider ConfigureServices(IServiceCollection services) {
        var container = new Container();
        container.Configure(i => {

            i.For<IHttpContextAccessor>()
                .Use(new HttpContextAccessor());

            i.For<ClaimsPrincipal>()
                .Use(x => x.GetInstance<IHttpContextAccessor>().HttpContext.User);
        });

        container.Populate(services);

        return container.GetInstance<IServiceProvider>();
    }
}
Run Code Online (Sandbox Code Playgroud)

Model.cs

public class Model {
    //[FromServices] <-- worked in RC1
    public ClaimsPrincipal Principal { get; set; }

    public string Value => Principal.Identity.Name; 
}
Run Code Online (Sandbox Code Playgroud)

TestController.cs

public class TestController : Controller {

    public IActionResult Test(Model model){
        return Ok();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection structuremap4 asp.net-core

7
推荐指数
1
解决办法
228
查看次数

JQuery error()函数在IE中不起作用

我有以下图像元素,它的src不存在.我想使用jquery错误函数来检测它是否已加载,并将src替换为我知道存在的通用映像.这适用于chrome和firefox但在IE中.为什么这在IE中不起作用,是否有任何变通方法?谢谢!

<img id="main" src="missing-image.jpg" />

<script type="text/javascript">

    $(function () {
        $("#main").error(function () {
            $("#main").attr("src", "generic.jpg");
        });
    });

</script>
Run Code Online (Sandbox Code Playgroud)

javascript jquery internet-explorer

6
推荐指数
1
解决办法
5229
查看次数

使用 AutoMapper 的通用枚举到小写字符串的映射

我目前将所有不同的枚举值类型映射到一个小写的字符串值。我有多个地图,其中包含重复的逻辑。是否可以采用以下 AutoMapper 代码并告诉它始终将枚举转换为小写字符串值?

Mapper.CreateMap<Class1, OutClass1>()
   .ForMember(dest => dest.Enum1String, opt => opt.MapFrom(src => src.Enum1.ToString().ToLower()))
   .ForMember(dest => dest.Enum2String, opt => opt.MapFrom(src => src.Enum2.ToString().ToLower()));

Mapper.CreateMap<Class2, OutClass2>()
   .ForMember(dest => dest.Enum2String, opt => opt.MapFrom(src => src.Enum2.ToString().ToLower()));
Run Code Online (Sandbox Code Playgroud)

c# automapper

6
推荐指数
1
解决办法
1886
查看次数

Xamarin表单选择器 - 自定义UIPickerView

使用Xamarin Forms,如何更改默认选择器视图以在PopoverController中显示?下面的代码抛出"弹出窗口无法从没有窗口的视图中呈现".在iOS上.

public class BindablePickerRenderer : PickerRenderer {
        private UIPickerView picker;

        protected override void OnElementChanged(ElementChangedEventArgs<Picker> e) {
            base.OnElementChanged(e);

            this.picker = new UIPickerView() {
                Source = (UIPickerViewModel) new PickerSource(e.NewElement)
            };

            var popoverContent = new UIViewController();
            popoverContent.View = picker;


            var popoverController = new UIPopoverController(popoverContent);
            popoverController.PopoverContentSize = new SizeF(320, 180);
            popoverController.PresentFromRect(picker.Frame, this.Control.InputView, UIPopoverArrowDirection.Up, true);
        }
}
Run Code Online (Sandbox Code Playgroud)

xamarin.ios xamarin xamarin.forms

6
推荐指数
1
解决办法
2880
查看次数

RavenDB - 使用OR过滤器构建动态查询

我需要能够在运行时使用OR语句构建查询.如果我使用下面的方法来构建查询,那么一切都是AND.我真的需要每个过滤器值为OR才能使此查询正常工作.

public class IdAndRole
{
    public string Id {get;set;}
    public string Role {get;set;}
}

var idAndRoles = session.Query<IdAndRole, Roles_ById>();
foreach(var filter in filterValues)
{
    idAndRoles = idAndRoles.Where(x => x.In(filter.Id) && x.In(filter.Role));
}
Run Code Online (Sandbox Code Playgroud)

伪代码:

(filter[0].Id == value1 && filter[0].Role == role1) ||(filter[1].Id == value2 && filter[1].Role == role2)
Run Code Online (Sandbox Code Playgroud)

c# linq ravendb

3
推荐指数
1
解决办法
976
查看次数

c #windows形成大写字母

我的用户可以在组合框中输入一些文本,但我希望这个文本自动以大写字母显示(就好像用户有大写字母一样).任何想法如何做到这一点?

c# forms combobox

2
推荐指数
1
解决办法
2995
查看次数