我有一个ViewModel,它有一个复杂的对象作为其成员之一.复杂对象有4个属性(所有字符串).我正在尝试创建一个可重用的局部视图,我可以在其中传递复杂对象并让它为其属性生成带有html帮助器的html.这一切都很有效.但是,当我提交表单时,模型绑定器不会将值映射回ViewModel的成员,因此我不会在服务器端返回任何内容.如何读取用户在复杂对象的html帮助器中键入的值.
视图模型
public class MyViewModel
{
public string SomeProperty { get; set; }
public MyComplexModel ComplexModel { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
MyComplexModel
public class MyComplexModel
{
public int id { get; set; }
public string Name { get; set; }
public string Address { get; set; }
....
}
Run Code Online (Sandbox Code Playgroud)
调节器
public class MyController : Controller
{
public ActionResult Index()
{
MyViewModel model = new MyViewModel();
model.ComplexModel = new MyComplexModel();
model.ComplexModel.id = 15;
return View(model);
}
[HttpPost]
public ActionResult Index(MyViewModel model) …Run Code Online (Sandbox Code Playgroud) 我目前在我的Android应用程序上使用ffmpeg的实现.我允许用户在我的应用程序中拍摄短视频,然后当他们将它们上传到服务器时,我正在使用ffmpeg来缩小它们以减小文件大小,因此它们不会通过网络传递大量数据.
问题是,它需要永远在Android设备上编码视频.这些视频通常不超过45秒,编码可能需要20分钟.我已经在ffmpeg命令行上玩了一些不同的开关/参数,我现在可以在更舒适的时间使用它,但文件大小要大得多.我只是不确定我应该使用哪种编解码器(编码速度最快但输出质量不错),ffmpeg如何根据编码速度等处理大小(宽高比)的变化.
这是我一直在使用的两个命令.第一个输出我想要的文件大小/质量,但它只需要太长时间来编码,更不用说它使我的设备变得非常热,而它的编码时间如此之长:
ffmpeg -i input.mp4 -b:v 1024k -c:a copy -vf scale=960:540 output.mp4
Run Code Online (Sandbox Code Playgroud)
我已经调整了一些比特率,并将比例尺改为更小的尺寸,但我不想让视频非常小(在比例方面)以实现更快的编码.第二个命令的速度要快得多,但文件大小要大得多:
ffmpeg -i input.mp4 -vcodec libx264 -preset fast -c:a copy -s 960x540 output.mp4
Run Code Online (Sandbox Code Playgroud)
我想找到一个快乐的媒体(较小的文件大小,但编码更快)保持视频比例尺寸接近原始.ffmpeg只有很多不同的参数/开关,很难围绕我应该做的事情.
编辑:添加ffmpeg输出.
ffmpeg -i input.mp4 -vcodec libx264 -crf 30 -preset veryfast -c:a copy -s 960x540 output.mp4
09-13 11:06:28.330 10881-10881/someapp D/home: ffmpeg version n3.0.1 Copyright (c) 2000-2016 the FFmpeg developers
09-13 11:06:28.330 10881-10881/someapp D/home: built with gcc 4.8 (GCC)
09-13 11:06:28.331 10881-10881/someapp D/home: configuration: --target-os=linux --cross-prefix=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我正在为我徒步旅行时的每个位置变化绘制一条折线。这可能是一次 8 小时的背包徒步旅行,所以我可能有数万个点要绘制。
在我的测试中,我注意到当我放大得相当近时(比如 17 或 18),即使在绘制了数千条线之后它也能很好地工作,但是当我缩小并且地图必须渲染所有这些线时,当我的手机试图处理所有事情时,它变得缓慢。
我知道绘制折线的另一个选项是创建我所有点 (LatLng) 的集合 (ArrayList) 并将其传递给 PolyLine 的 setPoints() 方法,该方法绘制一条线。这在事后回顾跋涉时显然很有效,但我想 setPoints() 的内部结构必须为每个添加的新点循环整个集合以绘制那条线,这最终可能会导致性能更差,因为无论旧点是否可见(在视口内),它都必须这样做。
中间有什么吗?polyline.addPoint() 方法将是完美的,但我找不到类似的东西......现在作为一个权宜之计,我刚刚使我的折线可见性可切换,以便我可以在放大时隐藏它们需要移动地图,正如我所说,当我放大时,这不是问题,因为它只需要渲染一个相当小的子集。
非常感谢任何想法/建议。
TIA
我有一个泛型类,它有一个泛型方法,它使用与实例化对象时传递的类型相同的类型.在运行时,我只知道我需要通过该对象名的字符串表示传入的对象的名称.我已经阅读了一些关于使用Activator和可能使用动态的东西,但我无法理解我需要如何使用它.这是我的泛型类的样子片段:
public class MyClass<T> where T : class, new()
{
public IList<T> MyMethod(Stream stream)
{
var data = new List<T>();
// stuff to create my list of objects
return data;
}
}
Run Code Online (Sandbox Code Playgroud)
我需要根据我作为字符串传入的对象的名称从MyMethod()方法返回我的IList.
我只是做一个开关/箱的字符串,然后与参考"真正的"对象的情况中实例的MyClass的,但我不知道是否有这样做的更好(更短和更清洁的)的方式.
TIA
我从 API 返回一个长度为 45 个字符的字符串。有一个词对于一种条件是唯一的,但不会出现在另一种条件中。
我想知道使用 string.contains() 是否比将整个字符串与 string.equals() 或 string == "blah blah" 进行比较在性能方面更快。
我不知道这些方法的内部工作原理,但从逻辑上讲, contains() 似乎应该更快,因为它可以在找到匹配项后停止遍历字符串。这准确吗?顺便说一下,我要检查的单词是字符串中的第一个单词。
我有一个实体 forUsers和一个实体 for Projects。
我需要能够将多个用户分配给我的项目实体上的 3 个不同列表属性。我已经能够通过连接实体成功地为一个属性(多对多关系)执行此操作。我可以UserType在 Users 表上指定并且只使用一个属性,但我可能会遇到这样的情况,即用户可能执行多个角色(类型),然后就行不通了。
我以为我可以将UserType放在连接表(实体)上,但我不知道如何在我的 DBContext 中构建该实体。
这是我使用定义的一个属性工作的内容:
项目实体:
public class Project : IInt32Identity
{
public int Id { get; set; }
public string ProjectName { get; set; }
...
public bool ProjectActive { get; set; }
public List<ProjectFile> ProjectFiles { get; set; }
public List<ProjectUsers> ProjectUsers { get; set; }
public DateTime ProjectCreatedDate { get; set; }
public DateTime ProjectModifiedDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
用户实体:
public …Run Code Online (Sandbox Code Playgroud) c# entity-framework entity-framework-core .net-core asp.net-core-2.1
我在这里阅读的所有内容: https: //angular.io/guide/dependency-injection-in-action使得这看起来应该是可能的,但是当尝试从另一个注入的服务上调用方法时,我收到此错误服务:
TypeError:无法在 CatchSubscriber.handleError [作为选择器] (project.service.ts:30) 处读取未定义的属性“isLoggedIn”,位于 TapSubscriber._error (tap.js:56) 处的 CatchSubscriber.error (catchError.js:29) 处TapSubscriber.error (Subscriber.js:55) 在 MapSubscriber._error (Subscriber.js:75) 在 MapSubscriber.error (Subscriber.js:55) 在 FilterSubscriber._error (Subscriber.js:75) 在 FilterSubscriber.error (Subscriber. js:55) 在 MergeMapSubscriber.notifyError (OuterSubscriber.js:7) 在 InnerSubscriber._error (InnerSubscriber.js:14)
这是我的ProjectService,正在注入我的UserService
import { Injectable } from '@angular/core';
import { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';
import { Observable, throwError, of } from 'rxjs';
import { catchError, tap, map } from 'rxjs/operators';
import { AuthHeader } from '../../Shared/Helpers/AuthHeader';
import { UserService } from …Run Code Online (Sandbox Code Playgroud) c# ×3
.net-core ×1
activator ×1
android ×1
angular ×1
asp.net-mvc ×1
dynamic ×1
ffmpeg ×1
generics ×1
google-maps ×1
model ×1
performance ×1
polyline ×1
string ×1
typescript ×1
video ×1