小编Jon*_*lis的帖子

DisplayNameFor()来自Model中的List <Object>

我相信这很简单,我似乎无法找到正确的方法来显示模型中列表中项目的显示名称.

我的简化模型:

public class PersonViewModel
{
    public long ID { get; set; }

    private List<PersonNameViewModel> names = new List<PersonNameViewModel>();

    [Display(Name = "Names")]
    public List<PersonNameViewModel> Names { get { return names; } set { names = value; } }      
}
Run Code Online (Sandbox Code Playgroud)

和名称:

public class PersonNameViewModel
{
    public long ID { get; set; }

    [Display(Name = "Set Primary")]
    public bool IsPrimary { get; set; }

    [Display(Name = "Full Name")]
    public string FullName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在,我想创建一个表来显示一个人的所有名称,并获取DisplayNameFor FullName.明显,

@Html.DisplayNameFor(model => model.Names.FullName);
Run Code Online (Sandbox Code Playgroud)

不行,并且 …

c# asp.net-mvc model razor

82
推荐指数
2
解决办法
3万
查看次数

在每个控制器的ASP.NET WebAPI上强制使用CamelCase

在ASP.NET WebAPI中,我知道您可以使用global.aspx中的CamelCasePropertyNamesContractResolver()将默认的json格式化程序设置为使用驼峰大小写,这将强制所有json序列化为驼峰大小写.

但是,我需要能够在"每个控制器"实例上设置它,而不是全局解决方案.

这可能吗?

asp.net asp.net-web-api

31
推荐指数
2
解决办法
7840
查看次数

具有List属性的模型中的ASP.NET MVC CheckBoxList

如果标题不清楚,请道歉.

我正在尝试从ASP.NET MVC中的表单提交返回我的模型.

我的问题几乎和这个问题一样,只是因为我没有List<Model>一个像以下那样的模型:

public Model
{
     string UserName {get; set;}
     string Password {get; set;}
     List<Roles> UserRoles {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

我需要UserRoles作为管理员在创建新用户时可以选择的复选框.我的问题是,我不确定如何对列表使用'@ Html.CheckBoxFor'.我试过这个:

 @for (var i = 0; i < Model.UserRoles.Count();i++ )
 {
   @Html.HiddenFor(model => model.UserRoles[i].RoleID)
   @Html.CheckBoxFor(model => model.UserRoles[i].Selected)
   @Html.LabelFor(model => model.UserRoles[i].Name)
 }
Run Code Online (Sandbox Code Playgroud)

这绝不起作用 - 页面上的每个标签都是"名称",我的列表在POST中是空的.有人可以给我任何指导吗?

c# asp.net-mvc razor

31
推荐指数
2
解决办法
6万
查看次数

F12 - 转到接口实现

不运行应用程序时,在接口类型的方法上按F12(转到定义)将转到接口本身.

是否存在任何关键组合(或者我可以制作的组合),这将允许我提供跳转到的默认实现,或者允许我快速选择要执行的实现?

我们的应用程序中有几个层,它可以节省大量时间直接跳转到MockReal实现,而不是在源代码管理中导航到它们.

keyboard-shortcuts interface visual-studio

23
推荐指数
4
解决办法
1万
查看次数

UIPickerView以编程方式选择第一行

有很多这样的问题,但我相信我的案例是独一无二的.

我在内部单击文本框时会弹出一个选择器视图.用户在选择器视图中选择他们的位置,并将其放入文本框中.

打开选择器视图时,滑块位于第一个元素上,但是如果我单击完成按钮以最小化选择器视图,则不会选择任何元素(即,您必须向下滚动并向上选择第一个元素)

我试过了

    [pickerView selectRow:0 inComponent:0 animated:YES];
Run Code Online (Sandbox Code Playgroud)

以及它的各种组合,但它只将滑块放在该元素上,而不是实际选择它.

一些答案说要在viewDidLoad()方法中应用上面的代码,但不幸的是我从Web服务中提取位置数组并且不能这样做.

理想情况下,我想工作 - 用户在文本框中单击,选择器视图正常弹出,如果在此时单击完成按钮,则选择第一个项目.

先感谢您

xcode uipickerview ios

13
推荐指数
2
解决办法
2万
查看次数

ASP.NET WebApi Post方法 - 404传递参数时

我不能为我的生活弄清楚这一点.我有一个带有Get和Post方法的web api控制器.使用和不使用参数时,Get方法可以正常工作,但是当我尝试向其添加String参数时,帖子会中断.以下是我的代码.

路线:

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "{controller}/{id}",
            defaults: new { id = UrlParameter.Optional }
        );
Run Code Online (Sandbox Code Playgroud)

控制器:

public class AuditController : ApiController
{
    public String Post(String test)
    {
        return "Success : " + test;
    }

    public String Get(String test)
    {
        return "Success : " + test;
    }
}
Run Code Online (Sandbox Code Playgroud)

请求:

    var request = WebRequest.Create("http://localhost:42652/Audit");
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        using (var writer = new StreamWriter(request.GetRequestStream()))
        {
            writer.Write("test=TEST");
        }
        WebResponse webResponse = request.GetResponse();
Run Code Online (Sandbox Code Playgroud)

我已经尝试了很多变化请求,我觉得有一些简单的我缺少.谢谢你的帮助.

c# httpwebrequest asp.net-web-api

13
推荐指数
1
解决办法
9612
查看次数

VB Nullables和Nothings

我研究了VB.NET中C#default关键字等价,并遇到了这个问题.

然后我好奇.一些背景 - 我正在解析一个excel电子表格,其中许多列可以为null,并且我0和整数列之间肯定存在差异null.

我写了一个小解析方法:

Function Test(ByVal i As String) As Nullable(Of Integer)
    Dim j As Integer

    If Integer.TryParse(i, j) Then
        Return j
    Else
        Return Nothing
    End If
End Function
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常.但是在这里,Integer如果我想要,我可以回复:

Function Test(ByVal i As String) As Nullable(Of Integer)
    Return 2 'or Return Nothing
End Function
Run Code Online (Sandbox Code Playgroud)

我也可以参加C#:

 static void Main(string[] args)
 {
     int? j = Test("1");
 }

 public static int? Test(string i)
 {
     return 2; //or …
Run Code Online (Sandbox Code Playgroud)

vb.net default-value nothing

9
推荐指数
1
解决办法
127
查看次数

按月分组

我有日期时间对象的列表.我想按月分组并将其添加到字典中.

因此,在分组过程之后,我希望每月和每年都有列表.例如:在分组之前[混合以下元素]

分组后:1)2015年1月 - 5个要素2)2015年2月 - 2个要素2)2014年1月 - 2个要素

我试过这样的:

var test = this.myList.GroupBy(x => x.myDate.Month).ToList();
Run Code Online (Sandbox Code Playgroud)

但我知道我需要使用字典.你有任何想法如何解决它?

c# linq grouping dictionary group-by

8
推荐指数
1
解决办法
4440
查看次数

AngularJS:链接forEach循环的承诺

我无法绕开承诺.我正在使用Google Earth API对地址进行"浏览".游览只是一个持续大约一分钟的动画,当一个完成时,下一个应该开始.

这是我的游览功能:

var tourAddress = function (address) {
        return tourService.getLatLong(address).then(function (coords) {
            return tourService.getKmlForCoords(coords).then(function (kml) {
                _ge.getTourPlayer().setTour(kml);
                _ge.getTourPlayer().play();

                var counter = 0;
                var d = $q.defer();
                var waitForTour = function () {
                    if (counter < _ge.getTourPlayer().getDuration()) {
                        ++counter;
                        setTimeout(waitForTour, 1000);
                    } else {
                        d.resolve();
                    }
                };

                waitForTour();

                return d.promise;
            });
        });
    }
Run Code Online (Sandbox Code Playgroud)

这看起来效果很好.它启动动画并返回一个在动画完成时解析的promise.现在我有一个地址数组,我想做一个foreach他们:

$scope.addresses.forEach(function (item) {
      tourAddress(item.address).then(function(){
          $log.log(item.address + " complete");
       });
 });
Run Code Online (Sandbox Code Playgroud)

当我这样做时,它们都会同时执行(Google Earth会为最后一个地址执行动画)并且它们都会同时完成.如何在上一个完成之后将它们链接起来?

UPDATE

我用@ phtrivier的帮助来实现它:

 $scope.addresses.reduce(function (curr,next) {
      return curr.then(function(){
            return tourAddress(next.address)
      });
  }, Promise.resolve()).then(function(){ …
Run Code Online (Sandbox Code Playgroud)

javascript promise angularjs angular-promise

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

在Identity 2.0中成功实现自定义UserManager <IUser>

我正在尝试导航黑洞,这是身份成员身份的自定义实现.我现在的目标只是让我的这一行ApiController正确检索我的UserManager:

public IHttpActionResult Index()
{
    var manager = HttpContext.Current.GetOwinContext().GetUserManager<UserManager<MyUser,int>>();
    //manager is null
}
Run Code Online (Sandbox Code Playgroud)

这是我的设置.在我Startup的配置中,我设置了WebApi并添加了我的OwinContext:

app.CreatePerOwinContext<UserManager<MyUser,int>>(Create);
Run Code Online (Sandbox Code Playgroud)

我的创建方法:

public static UserManager<User,int> Create(IdentityFactoryOptions<UserManager<MyUser,int>> options, IOwinContext context)
{
   return new UserManager<MyUser,int>(new UserStore(new DbContext()));
}
Run Code Online (Sandbox Code Playgroud)

其余的是我可以做的最基本的实现.

MYUSER:

public class MyUser : IUser<int>
{
    public int Id { get; set; }
    public string UserName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

MyUserStore:

 public class MyUserStore : IUserStore<MyUser,int>
 {
    private IdentityDbContext context;
    public MyUserStore(IdentityDbContext c)
    {
       context = c;
    }

    //Create,Delete, etc implementations
 }
Run Code Online (Sandbox Code Playgroud)

MyDbContext: …

c# asp.net-web-api owin asp.net-identity asp.net-identity-2

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