标签: asp.net-mvc-5

不能使宽度大于200px

我有一个文本框和textarea,我想增加宽度.我不能使宽度大于默认值,但我可以减少它.默认宽度约为200px

以下是控件的代码:

@foreach (var item in Model)
{
    <tr>
        ...
        <td>
            @Html.DisplayFor(modelItem => item.NoteTextViewModels.First().ContextIdentifier, new { @class = "timeAndNote" })
        </td>
...
Run Code Online (Sandbox Code Playgroud)

和css:

.timeAndNote{
       width: 500px;
   }
Run Code Online (Sandbox Code Playgroud)

我正在使用JQuery对话框来显示数据:

<div id="noteDialogDiv" style="display: none;"></div>
Run Code Online (Sandbox Code Playgroud)

和JS功能:

function showDetailedImage(divId, dialogTitle) {
var target = '#' + divId;
$(target).attr("title", dialogTitle);

var dialog = $(target).dialog({
        show: "clip",
        hide: "clip",
        height: $(window).height() / 3,
        width: $(window).width() / 3 ,
        title: dialogTitle,
        modal:true,
        buttons: {
            Ok: function () {
                $(this).dialog("close");
            }
        }
});
dialog.dialog('open');
Run Code Online (Sandbox Code Playgroud)

}

有什么我不知道的,这可以防止用户在某些场合中增加某些控件的宽度吗?

我添加了一个图像,其中有2个箭头指向我想要更宽的控件: 在此输入图像描述

css asp.net-mvc-5

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

为什么我的查询没有结果?

我想在我的数据库中选择可用的spotId.我有这个方法:

public ActionResult ShowAvailableSpots(int Id, DateTime ArrivalDate, DateTime LeaveDate)
{
    var query2 = (from r in db.Reservations
                where (DbFunctions.TruncateTime(r.ArrivalDate) >= DbFunctions.TruncateTime(ArrivalDate)
                    && DbFunctions.TruncateTime(r.LeaveDate) <= DbFunctions.TruncateTime(LeaveDate))
                  select r.spot);

    ViewBag.StartingDate = ArrivalDate;
    ViewBag.EndingDate = LeaveDate;
    ViewBag.AvailableSpots = query2;

    ViewBag.CampingSpotId = new SelectList(query2, "CampingSpotId", "SpotName");

    return View();
}
Run Code Online (Sandbox Code Playgroud)

我确定在给定的日期范围内没有预订,那么为什么没有返回现场ID?

查询生成的输出如下:

SELECT
   [Extent2].[campingspotid] AS [CampingSpotId],
   [Extent2].[spotname]      AS [SpotName],
   [Extent2].[fieldname]     AS [FieldName],
   [Extent2].[surface]       AS [Surface],
   [Extent2].[wifi]          AS [Wifi],
   [Extent2].[water]         AS [Water],
   [Extent2].[sewer]         AS [Sewer],
   [Extent2].[reserved]      AS [Reserved],
   [Extent2].[booked]        AS [Booked],
   [Extent2].[spotprice]     AS [SpotPrice],
   [Extent2].[type]          AS …
Run Code Online (Sandbox Code Playgroud)

c# linq sql-server asp.net asp.net-mvc-5

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

如何在Razor View中获取Role.Name?

我在用 @model IEnumerable<WebApplication.Models.ApplicationUser>

视图

@foreach (var user in Model)
{
    <tr>
        <td>
            @foreach(var role in user.Roles){
                role.Name; //invalid
                role.RoleId; //valid
                role.UserId; //valid
            }
        </td>
    </tr>
}
Run Code Online (Sandbox Code Playgroud)

模型

public class ApplicationUser : IdentityUser
{
    [Required]
    public string FirstName { get; set; }

    [Required]
    public string LastName { get; set; }

    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
    {
        // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
        var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
        // Add custom user claims here
        return userIdentity; …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc razor asp.net-mvc-5 asp.net-identity-2

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

Identity API 2.0检查用户是否是View上的管理员角色

在脚手架局部视图_Layout.cshtml内定义了应用程序的导航栏。我想对其进行修改,以便仅当登录用户为时才显示某些链接"Admin"

Seed()我的Configuration.cs文件迁移方法中,定义了以下内容:

bool AddUserAndRole(ApplicationDbContext context) {
        IdentityResult ir;

        var rm = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
        ir = rm.Create(new IdentityRole("Admin"));

        var um = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));

        var user = new ApplicationUser() { UserName = "admin", FirstName = "System", LastName = "Administrator" };
        ir = um.Create(user, "admin");

        if(ir.Succeeded == false) {
            return ir.Succeeded;
        }

        ir = um.AddToRole(user.Id, "Admin");

        return ir.Succeeded;
    }
Run Code Online (Sandbox Code Playgroud)

如您所见,有一个名为“ Admin”的角色,新创建的用户已添加到该角色。

话虽这么说,我已经试过几种方法里我_Layout.cshmtl试图确定当前用户是否是"Admin"与否

@if(Roles.IsUserInRole(User.Identity.Name, "Admin")) { }

@if (User.IsInRole("Admin")) { …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-5 asp.net-identity-2

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

从string语句中删除最后一个逗号

我有以下声明

model.Activities = model.SelectedActivities.Aggregate(model.Activities, (current, activityId) => current + string.Format("({0}, {1}, {2}, null),", activityId, userId, DateTime.Now));
Run Code Online (Sandbox Code Playgroud)

产生以下内容:

(1, 1, 05/04/2015 05:09:39, null),(2, 1, 05/04/2015 05:09:39, null),(3, 1, 05/04/2015 05:09:39, null),(5, 1, 05/04/2015 05:09:39, null),(8, 1, 05/04/2015 05:09:39, null),
Run Code Online (Sandbox Code Playgroud)

你可以在最后看到有一个逗号,我试图通过执行以下操作来删除它:

var t = model.Activities.Substring(1, model.Activities.Length - 1);
Run Code Online (Sandbox Code Playgroud)

但是这句话似乎没有删除最后一个逗号而是保持不变,我在这里做错了什么?

c# substring asp.net-mvc-5

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

如何在MVC模型中表示一个月的复选框

我无法理解如何使用MVC创建下表,并成功将其绑定到模型:

在此输入图像描述

我基本上需要跟踪一个事件需要发生的月份的哪几天.这是我对模型的尝试:

编辑:这不是一个月,而是任意4周的周期

public class ScheduleViewModel
{
    public int PatientId { get; set; }          
    public List<Schedule> Schedules { get; set;}          
}

public class Schedule {
    public int Week { get;set;}
    public Day Day { get;set;}
    public bool IsSelected { get;set;}    
}

public enum Day
{
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}
Run Code Online (Sandbox Code Playgroud)

我可以成功渲染一个视图(不受模型约束).我意识到我需要在输入上使用@ html.CheckBoxFor.

这是我的html视图的粗略副本:

@model WebApplication10.Models.ScheduleViewModel
@using (Html.BeginForm())
{
<table class="table table-striped">
    <thead>
        <tr>
            <th></th>
            @{
foreach (Day t in Enum.GetValues(typeof(Day)))
{
    <th>@t</th>
}
            }
        </tr>
    </thead> …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc razor asp.net-mvc-5

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

C#扩展方法和保护级别?

我正在尝试为MVC控制器类编写扩展方法,因为我在程序中反复看到这样的代码:

if (viewModel == null)
{
    return HttpNotFound();
}
return View(viewModel);
Run Code Online (Sandbox Code Playgroud)

我的想法是,我想要一个调用的扩展方法ViewModelResult()来处理这个问题,因此它将返回一个ActionResult或一个HttpNotFound结果,具体取决于视图模型是否可用.这样,我不必每次都写这3-4行代码.

但是,似乎方法View()HttpNotFound()MVC控制器的保护级别造成了一些严重的麻烦.我已经编写了如下代码,但它不起作用:

public static class ExtensionController
{
    public static ActionResult ViewModelResult(this Controller controller, ViewModel viewModel)
    {
        if (viewModel == null)
        {
            return controller.HttpNotFound();
        }
        return controller.View(viewModel);
    }
}
Run Code Online (Sandbox Code Playgroud)

它抛出错误消息,例如"System.Web.MVC.Controller.View()由于其保护级别而无法访问".这让我感到困惑,我认为在扩展方法中,this关键字标记的对象的所有私有和受保护方法都是可访问的,就像在此类中编写方法一样.但我被证明是错误的,那些非公开的方法在扩展方法中是不可访问的.

现在问题是,我怎样才能解决这个问题?我有点无能,不知道我能做些什么.MVC控制器类在.NET框架内,我无法修改源代码.不建议不要改变.NET框架的内部实现.有人可以帮忙吗?在这种情况下,你建议我做什么?

c# asp.net asp.net-mvc controller asp.net-mvc-5

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

asp.net mvc 5具有条件的SelectListItem

我有一个asp.net mvc 5 webapp,我想得到一个DropDownListFor并为它添加一个条件.

在下一个视图中,我想在DropDownList中仅显示Cars.ClientId == model.ClientId的Cars.那么我可以添加到SelectListItem来获得它呢?

我需要这样的东西(这是行不通的):

Cars = db.Cars.Select(c => new SelectListItem() { Text = c.Licence, Value = c.Id.ToString() }).ToList().Where(item=>item.ClientId== id)
Run Code Online (Sandbox Code Playgroud)

这是wiew:

@model BRMSWebApp.Models.CreateContractModel 
@{
  ViewBag.Title = "Ajouter";   } 
<h2>Ajouter</h2>
@using (Html.BeginForm()) 
{
@Html.AntiForgeryToken()
@Html.HiddenFor(model => model.ClientId)
<div class="form-horizontal">
    <h4>Contrat</h4>
    <hr />
    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
    <div class="form-group">
        @Html.LabelFor(model => model.StartDate, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.StartDate, new { htmlAttributes = new { @class = "form-control" } …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc asp.net-mvc-5

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

ASP.NET MVC剃刀视图,从原始模型绑定发布到不同的模型?

我在项目中有一个组控制器和视图,其中模型绑定是GroupViewModel.但是组页面很复杂,用户可以进行讨论主题.在此组视图页面上,我有表单,允许用户发布主题/回复.用于这些表单的模型可以是TopicViewModel或ReplyViewModel,但原始模型绑定仅适用于GroupViewModel.它在cshtml页面的开头声明:

@model MyProject.ViewModels.GroupBrowseViewModel
Run Code Online (Sandbox Code Playgroud)

所以我想知道,是否有可能将表单从顶部声明的表单绑定到不同的视图模型?如果是这样,如何实现这一目标?

c# asp.net-mvc model-binding razor asp.net-mvc-5

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

为什么从网址中删除了"+"字符

为什么删除的mvc +code=wamTEpI6kZcP997j2d+ZeQ==

链接

http://localhost:33693/PasswordRecovery/InitPassword?email=abc@gmail.com&code=wamTEpI6kZcP997j2d+ZeQ==
Run Code Online (Sandbox Code Playgroud)

控制器功能

public ActionResult InitPassword(string email, string code)
{
    return View();
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc-5

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