小编Kas*_*sem的帖子

Youtube视频和图像在SAME ColorBox中?

我试图允许用户点击一组拇指,这将打开一个颜色框并显示相应的图像/视频.拇指可以引用图像或视频,因此颜色框应该(希望)正确显示.我当前的实现工作,但我有两个彩色实例,一个用于视频,一个用于图像.我希望我能找到一种方法将两者结合到同一个实例中并允许在两者之间导航......这甚至可能吗?这是我正在做的事情:

<div id="imageGallery">
    <ul id="thumbs">
        @if (!string.IsNullOrEmpty(Model.Youtube))
        {
            <li class="galleryImage"><a href="http://www.youtube.com/embed/@YoutubeId(Model.Youtube)" class="detailColorBox" id="youtubeVideo"
            title=""><img src="http://img.youtube.com/vi/@YoutubeId(Model.Youtube)/1.jpg" alt="image thumb" /></a></li>
        }
        @foreach (var img in Model.Images)
        {
            <li class="galleryImage"><a href="@Html.ResolvePath(img, "710x560")" class="detailColorBox" 
rel="itemDetailGallery"  title=""><img src="@Html.ResolvePath(img, "135x135")" alt="image thumb" /></a></li>
        }
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

并在脚本标记内:

        $("a[rel='itemDetailGallery']").colorbox();

        $("#youtubeVideo").colorbox({iframe:true, innerWidth:425, innerHeight:344});
Run Code Online (Sandbox Code Playgroud)

PS:我还尝试使用Youtube视频ID输入iframe,并将其显示在彩盒中,但也失败了.

有什么想法吗?

youtube jquery colorbox razor

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

在Web.config中读取和编辑配置

我有一些设置需要从我正在处理的网站的管理面板进行编辑.我认为将这些设置放在web.config中是有意义的(或者我应该将它们放在其他地方?).所以无论如何,我正在尝试编写必要的代码来执行此操作,但是我被卡住了......这是我第一次真正需要这样做... :)这是我到目前为止所得到的:

Web.config中的appSettings部分:

  <appSettings>
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    <add key="InvitationOnly" value="true" />
    <add key="MaintainanceMode" value ="false"/>
  </appSettings>
Run Code Online (Sandbox Code Playgroud)

这是我正在尝试编写的类,以便轻松检索和修改将放置在appSettings部分内的一些值:

public static class SiteSettings
{
    public static bool InvitationOnly
    {
        get
        {
            var invitation = WebConfigurationManager.AppSettings["InvitationOnly"];
            return Convert.ToBoolean(invitation);
        } 
        set
        {
            Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
            var appSettings = config.GetSection("appSettings") as AppSettingsSection;
            if(appSettings != null)
            {
                //got stuck here...
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我是在正确的轨道上吗?我怎么从这里继续?

顺便说一句,在web.config中放置站点设置有多安全?我应该担心什么吗?

谢谢.

xml asp.net asp.net-mvc configuration web-config

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

在实体框架代码优先中建模本地化数据

我正在尝试创建一个支持本地化的域模型。我查看了之前提出的一些问题,但我不太喜欢所提出的解决方案。例如,在这个问题中,我认为为每个应该支持本地化数据的实体创建一个额外的实体是多余的。我宁愿将所有实体的本地化数据放在一个实体中,其唯一目的是保存本地化数据。

我建议的解决方案如下:

  1. 创建一个LocalizedEntity类,所有应支持本地化的实体都将从该类继承。

  2. 创建一个LocalizedData基本上保留实际本地化文化价值观的实体。

更新:

public class LocalizedEntity
{
    public String Code { get; set; }
}

public enum ResourceType
{
    CityName,
    CityDescription,
    StreetName,
    AreaName
    //others...
}

public class LocalizedData
{
    public Int32 Id { get; set; }
    public String Code { get; set; }
    public ResourceType Type { get; set; }
    public Int32 CultureId { get; set; }
    public String Value { get; set; }
}

public class City : LocalizedEntity
{
    public …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework localization

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

Closure Table INSERT 语句包括级别/距离列

我指的是Bill Karwin 的演示文稿,以实现一个可以帮助我管理层次结构的闭包表。不幸的是,演示文稿没有展示我如何插入/更新Level幻灯片 67 中提到的列;这将非常有用。我一直在考虑,但我无法想出一些我可以测试的具体内容。这是我到目前为止所得到的:

create procedure USP_OrganizationUnitHierarchy_AddChild 
    @ParentId UNIQUEIDENTIFIER,
    @NewChildId UNIQUEIDENTIFIER
AS
BEGIN
    INSERT INTO [OrganizationUnitHierarchy]
    (
        [AncestorId],
        [DescendantId],
        [Level]
    )
    SELECT [AncestorId], @NewChildId, (here I need to get the count of ancestors that lead to the currently being selected ancestor through-out the tree)
    FROM [OrganizationUnitHierarchy]
    WHERE [DescendantId] = @ParentId
    UNION ALL SELECT @NewChildId, @NewChildId
END
go 
Run Code Online (Sandbox Code Playgroud)

我不知道我怎么能做到这一点。有任何想法吗?

sql t-sql sql-server stored-procedures transitive-closure-table

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

RenderPartial问题(将数据发送到母版页时)

我试图在主页面上发送一些数据.我使用Razor作为我的View Engine,使用AutoMapper在Domain和View Models之间进行映射.以下是我的代码:

//the partial view action method:
public ActionResult RenderCategories()
{
    IEnumerable<TopLevelCategory> categories = _categoryService.GetTopLevelCategories();
    var viewModel = new MasterPageViewModel
                    {
                        Categories =
                            Mapper.Map
                            <IEnumerable<TopLevelCategory>, IEnumerable<ParentCategory>>(categories)
                    };

    return View(viewModel);
}

//the partial view file: (this is just a test for now)
@model Sharwe.MVC.ViewModels.MasterPageViewModel

@foreach (var item in Model.Categories) {
      @item.Name
}

public class MasterPageViewModel
{
    public IEnumerable<ParentCategory> Categories { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我在_Layout.cshtml文件中使用@ Html.RenderPartial("RenderCategories")调用部分视图.但我不断收到以下错误:

编译器错误消息:CS1502:'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)'的最佳重载方法匹配有一些无效的参数

这是怎么回事?

asp.net-mvc automapper razor asp.net-mvc-3

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

在Razor中键入检查

我有public IList<ListingHistoryItem> History { get; set; }一个页面的视图模型.这ListingHistoryItem是一个抽象类,有两个子类BidDtoCommentDto.我之所以这样做是因为,该商家信息中包含某种新闻Feed,可以显示该商家信息的任何出价或评论.

所以无论如何,我想要做的是,在我的视图中检查History元素的具体类型,然后相应地显示它.这是我试图这样做的方式:

    @for (int i = 0; i < Model.History.Count; i++)
    {
        var feed = Model.History[i];

        if (feed.GetType().FullName.Equals(Sharwe.MVC.Models.BidDto))
Run Code Online (Sandbox Code Playgroud)

但是最后一行给出了以下异常:

Sharwe.MVC.Models.BidDto'是'type',在给定的上下文中无效

那我该怎么检查这个类型呢?或者我在这里做错了吗?

c# asp.net-mvc typechecking razor asp.net-mvc-3

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

Ajax.BeginForm没有做它应该做的事情?

我有一个对话框,其中有选项卡.在其中一个选项卡中,显示用户输入的地址.还有一个按钮,允许用户添加新地址.当用户单击该按钮时,当前选项卡的内容将替换为"添加"视图.

我在这里要完成的是允许用户添加地址,一旦他们点击确定,表单应该通过AJAX调用提交,然后应该使用"索引"视图的内容更新选项卡(显示用户的地址).

不幸的是,这不能正常工作.它不是通过AJAX调用提交表单,而是进行常规的后期操作,并在白色背景上显示索引视图,而不是在选项卡中显示.

这是我的代码:

    [HttpPost]
    public ActionResult Add(AddressDto model)
    {
        if(!ModelState.IsValid)
        {
            return PartialView(model);
        }
        Area area = null;
        if(!string.IsNullOrEmpty(model.Area))
        {
            area = _addressService.GetAreaByName(model.Area);
        }
        var newAdd = new Address
                         {
                             Details = model.Details,
                             Name = model.Name,
                             IsDefaultAddress = false,
                             CountryName = _addressService.GetCountryById(int.Parse(model.Country)).Name,
                             User = _helper.GetUserFromSession(HttpContext.User.Identity.Name)
                         };
        if(area != null)
            area.Addresses.Add(newAdd);
        else 
            _addressService.Create(newAdd);
        _unitOfWork.Commit();
        var indexViewModel = PrepareIndexView();
        return PartialView("Index", indexViewModel);
    }

    private UserLocationViewModel PrepareIndexView()
    {
        var nickname = this.HttpContext.User.Identity.Name;
        var user = _helper.GetUserFromSession(nickname, true);
        var viewModel = Mapper.Map<User, UserLocationViewModel>(user); …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-ajax ajax.beginform asp.net-mvc-3

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

两个进程使用的文件

我正在尝试编写一些代码,一旦用户点击某个删除按钮,就会从硬盘上删除一个图像.有时我会得到以下异常,有时候我没有.当我真的这样做时,如果我再次尝试删除它,它大部分时间都可以工作.

这是例外:

System.IO.IOException:进程无法访问该文件,因为它正由另一个进程使用.

我想我应该提供一些正在发生的事情的细节:

  • 用户上传图像,然后显示在屏幕上,以便用户可以看到他/她刚刚上传的内容.
  • 如果用户确定他们并不真的想要上传该图像,则向用户显示删除按钮.
  • 当用户单击删除按钮时,我调用一个删除图像及其先前创建的所有拇指的方法.
  • 最后,从屏幕上移除图像,用户可以上传其他图像.

我不确定如何解决这个问题,因为异常不会提供有关哪个其他进程持有该文件的任何信息.有任何想法吗?

更新:

    public byte[] ResizeImageToBytes(string path, int size, string name)
    {
        var newImage = Image.FromFile(path);
        int newWidth; int newHeight;
        if (size == 470)
        {
            if (newImage.Height != 250)
            {
                newWidth = (int)Math.Round(newImage.Width * (100 / (newImage.Height / 250)) * 0.01);
                newHeight = 250;
            }
            else
            {
                newWidth = newImage.Width;
                newHeight = newImage.Height;
            }
        }
        else
        {
            if (newImage.Width > newImage.Height)
            {
                newWidth = size;
                newHeight = newImage.Height*size/newImage.Width;
            }
            else
            {
                newWidth = …
Run Code Online (Sandbox Code Playgroud)

c# asp.net io file process

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

使用Quartz.NET安排Cron作业

我正在尝试使用Quartz.NET安排一些工作,但我无法让它工作.我尝试了以下代码,但在达到指定时间时没有任何反应.

    public void Test()
    {
        ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
        IScheduler scheduler = schedulerFactory.GetScheduler();

        IJobDetail jobDetail = JobBuilder.Create<SatellitePaymentGenerationJob>()
            .WithIdentity("TestJob")
            .Build();
        ITrigger trigger = TriggerBuilder.Create()
            .ForJob(jobDetail)
            .WithCronSchedule("0 26 18 * * ?")
            .WithIdentity("TestTrigger")
            .StartNow()
            .Build();
        scheduler.ScheduleJob(jobDetail, trigger);
        scheduler.Start();
    }
Run Code Online (Sandbox Code Playgroud)

更新:

我也试过以下只是为了确保它不是导致问题的Cron表达式.对我来说也不起作用......

IJobDetail jobDetail = JobBuilder.Create<SatellitePaymentGenerationJob>()
                .WithIdentity("TestJob", "TestGroup")
                .Build();
            ITrigger trigger = TriggerBuilder.Create()  
                .ForJob(jobDetail)
                .WithSimpleSchedule(x=> x.RepeatForever().WithIntervalInSeconds(10).WithMisfireHandlingInstructionFireNow())
                .StartAt(new DateTimeOffset(DateTime.UtcNow.AddSeconds(10)))
                .WithIdentity("TestTrigger", "TestGroup")
                .Build();
            scheduler.ScheduleJob(jobDetail, trigger);
            scheduler.Start();
            Console.WriteLine(DateTime.UtcNow.ToLongTimeString());
            Console.WriteLine(trigger.GetNextFireTimeUtc());
Run Code Online (Sandbox Code Playgroud)

请注意,trigger.GetNextFireTimeUtc()返回有效的时间值,但永远不会触发作业.

我哪里做错了?

c# jobs quartz-scheduler quartz.net quartz.net-2.0

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

读取WebException的响应流

我有以下方法,基本上使用他们的Facebook凭据验证用户.出于某种原因,我WebException在尝试处理授权密钥(代码)时遇到了问题.所以我试着读取响应流以便知道发生了什么,但是在读取流时我一直收到错误.这是我的代码:

    private void OnAuthCallback(HttpContextWrapper context, WebServerClient client)
    {
        try
        {
            IAuthorizationState authorizationState = client.ProcessUserAuthorization(context.Request);
            AccessToken accessToken = AccessTokenSerializer.Deserialize(authorizationState.AccessToken);
            String username = accessToken.User;
            context.Items[USERNAME] = username;
        }
        catch (ProtocolException e)
        {
            if (e.InnerException != null)
            {
                String message = e.InnerException.Message;
                if (e.InnerException is WebException)
                {
                    WebException exception = (WebException)e.InnerException;
                    var responseStream = exception.Response.GetResponseStream();
                    responseStream.Seek(0, SeekOrigin.Begin);
                    using (StreamReader sr = new StreamReader(responseStream))
                    {
                        message = sr.ReadToEnd();
                    }
                }
                EventLog.WriteEntry("OAuth Client", message);
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果我删除该responseStream.Seek(0, SeekOrigin.Begin);行,它会给我ArgumentException一条消息,说明该流不可读.有了这条线,它告诉我,我无法操纵已经关闭的流.这条小溪是怎么关闭的?为什么我不能从中读取?

c# asp.net facebook stream dotnetopenauth

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