我想构建一个空的Dropdownlistfor以获得之前Dropdownlisfor选择的结果:
实际观点:
<div id="makes">
@Html.DropDownListFor(m => m.Make_Id, Model.MakeList, HeelpResources.DropdownlistMakeFirstRecord)
</div>
<div id="models">
@Html.DropDownListFor(m => m.Model_Id, Model.ModelList, HeelpResources.DropdownlistModelFirstRecord)
</div>
Run Code Online (Sandbox Code Playgroud)
实际的控制器(工作我必须建立一个空的SelectedList,但似乎很奇怪必须这样做):
public virtual ActionResult Create()
{
// Build the Dropdownlist for the Makes
var makesDto = _makeService.ListAllMakes();
var makesViewModel = Mapper.Map<IList<MakeDto>, IList<MakeViewModel>>(makesDto);
// Build the Dropdownlist for the Models
var makeId = -1;
var modelsDto = _modelService.ListModelByMake(makeId);
var modelsViewModel = Mapper.Map<IList<ModelDto>, IList<ModelViewModel>>(modelsDto);
// Build the ViewModel to return to the View
CreateAdViewModel viewModel = new CreateAdViewModel();
viewModel.MakeList = new SelectList(makesViewModel, "ID", "Name"); …Run Code Online (Sandbox Code Playgroud) 在具有域层(DL)/业务(服务)层(BL)/表示层(PL)的多层项目中,将实体传递到表示层的最佳方法是什么?
DO => Domain Object;
DTO = Domain Transfer Object;
VM => View Model;
V => View;
Run Code Online (Sandbox Code Playgroud)
选项1:
DL => DO => BL => DTO => PL => VM => V
Run Code Online (Sandbox Code Playgroud)
这个选项似乎是最佳实践,但似乎也很重要.
选项2:
DL => DO => BL => DTO => PL => V
Run Code Online (Sandbox Code Playgroud)
这个选项似乎不是很好的练习,但由于DTO与VM几乎完全相同,我们可以将它直接传递给View,实现和保护它不那么痛苦.
这个选项对于多个布局也是可靠的吗,例如,对于移动设备,我可能需要来自BL的较少信息,因此我需要为这个特定布局使用不同的VM?
我只想发送一封电子邮件,其中包含我从C#控制台应用程序获得的所有错误.
我有目标:
<target xsi:type="File" name="HeelpAdsImport_log" fileName="${basedir}/logs/HeelpAdsImport-${shortdate}.log" layout="${longdate} ${uppercase:${level}} ${callsite:className=true:includeSourcePath=true:methodName=true} ${message}" />
<target name="HeelpAdsImport_patrick_email" xsi:type="Mail"
smtpServer="XXXXX"
smtpPort="25"
smtpAuthentication="Basic"
smtpUserName="YYYYYY"
smtpPassword="*ZZZZZZ"
enableSsl="false"
from="DDDDDDDDDD"
to="EEEEEEEEEEE"
layout="${longdate} ${uppercase:${level}} ${callsite:className=true:includeSourcePath=true:methodName=true} ${message}"
/>
Run Code Online (Sandbox Code Playgroud)
我有一个信息规则和一个错误规则:
<logger name="*" minlevel="Info" writeTo="HeelpAdsImport_log" />
<logger name="*" minlevel="Error" writeTo="HeelpAdsImport_patrick_email" />
Run Code Online (Sandbox Code Playgroud)
我在代码中有几个调用:
logger.Log(LogLevel.Info, " ----- New Ad Success! - auto.id: " + auto.id + " | auto.plate: " + auto.plate);
logger.Log(LogLevel.Error, "| continue error #4 - auto.id: " + auto.id);
Run Code Online (Sandbox Code Playgroud) 我正在使用Bootstrap 3 Datepicker(http://eonasdan.github.io/bootstrap-datetimepicker/)为模型属性提供DateTime Picker:
模型:
[Table("Calls")]
public partial class Call
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required(ErrorMessage = "Campo obrigatório")]
[Display(Name = "Data e Hora de início")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MM-yyyy HH:mm}")]
public DateTime DateOfTheCall { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
视图:
<div class="form-group">
@Html.LabelFor(model => model.DateOfTheCall, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.DateOfTheCall, new { htmlAttributes = new { @class = "form-control date" } })
@Html.ValidationMessageFor(model …Run Code Online (Sandbox Code Playgroud) 我需要根据汽车关键字搜索返回一个独特的记录列表,如:"Alfa 147"
问题是,因为我有3辆"阿尔法"汽车,它会返回1 + 3条记录(阿尔法和147结果似乎为1,阿尔法结果为3)
编辑:
SQL-Server查询看起来像这样:
SELECT DISTINCT c.Id, c.Name /*, COUNT(Number of Ads in the KeywordAdCategories table with those 2 keywords) */
FROM Categories AS c
INNER JOIN KeywordAdCategories AS kac ON kac.Category_Id = c.Id
INNER JOIN KeywordAdCategories AS kac1 ON kac.Ad_Id = kac1.Ad_Id AND kac1.Keyword_Id = (SELECT Id FROM Keywords WHERE Name = 'ALFA')
INNER JOIN KeywordAdCategories AS kac2 ON kac1.Ad_Id = kac2.Ad_Id AND kac2.Keyword_Id = (SELECT Id FROM Keywords WHERE Name = '147')
Run Code Online (Sandbox Code Playgroud)
我的LINQ查询是:
var query …Run Code Online (Sandbox Code Playgroud) 我试图在C#中使用服务器端授权来呈现图表,但我无法做到.
谷歌有一个例子,但基于Python,我需要基于C#MVC构建:https: //ga-dev-tools.appspot.com/embed-api/server-side-authorization/
我创建了服务帐户并下载了JSON文件:
的Controler
public class StatsController : Controller
{
// GET: Stats
public async Task<ActionResult> Index()
{
var json = "C:\\temp\\client_secrets.json";
string[] scopes = new string[] { AnalyticsReportingService.Scope.AnalyticsReadonly }; // Put your scopes here
var stream = new FileStream(json, FileMode.Open, FileAccess.Read);
var credential = GoogleCredential.FromStream(stream);
credential = credential.CreateScoped(scopes);
try
{
Task<string> task = ((ITokenAccess)credential).GetAccessTokenForRequestAsync();
task.Wait();
var bearer = task.Result;
ViewBag.Token = bearer;
}
catch (AggregateException ex)
{
throw ex.InnerException;
}
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
视图
<script> …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个全屏应用程序,当我在Acer Iconia 8中运行它时,标题不显示但操作按钮仍然显示:
AndroidManifest.xml中
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen">
<activity
android:name=".MainActivity"
android:windowSoftInputMode="adjustResize"
android:configChanges="orientation|keyboardHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)
和风格:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
</style>
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
编辑:
主要活动类别:
public class MainActivity extends AppCompatActivity {
private Context context;
private WebView webView;
private LoginDialog dialog;
private PinDialog pin;
private RelativeLayout mainLayout;
@Override …Run Code Online (Sandbox Code Playgroud) 我需要根据一组关键字进行搜索,这些关键字会返回与这些关键字相关的所有广告.然后,结果是一个类别列表,其中包含每个类别的广告计数.
搜索在关键字搜索表中进行:
public class KeywordSearch
{
public int Id { get; set; }
public string Name { get; set; }
public Keyword Keyword { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
关键字表的位置是:
public class Keyword
{
public int Id { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
广告与使用下表的关键字相关:
public class KeywordAdCategory
{
[Key]
[Column("Keyword_Id", Order = 0)]
public int Keyword_Id { get; set; }
[Key]
[Column("Ad_Id", Order = 1)]
public int Ad_Id { get; set; }
[Key]
[Column("Category_Id", Order …Run Code Online (Sandbox Code Playgroud) 我迷失了使用MVC 5模板附带的身份验证方法.
我需要将CreateBy用户包含在一个名为client的实体中,所以经过一些研究我得出了这个:
模型:
[Table("Clients")]
public partial class Client
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public virtual int UserCreated_Id { get; set; }
[ForeignKey("UserCreated_Id")]
public virtual ApplicationUser UserCreated { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
控制器方法:
client.UserCreated_Id = User.Identity.GetUserId<int>();
Run Code Online (Sandbox Code Playgroud)
但我必须改变身份模型中的几乎所有内容:
从
public class ApplicationUser : IdentityUser
Run Code Online (Sandbox Code Playgroud)
至
public class ApplicationUser : IdentityUser<int, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
Run Code Online (Sandbox Code Playgroud)
因此,差不多有30个变化.
但现在我有2个DbContext:
身份背景:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, int, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{
public ApplicationDbContext() : base("IPDB") {}
public static ApplicationDbContext Create() …Run Code Online (Sandbox Code Playgroud) 在我们提交表单时,显示加载程序和禁用按钮的最佳方法是什么:
@using (Ajax.BeginForm(MVC.Account.Login(), new AjaxOptions { OnSuccess = "onLoginSuccess" }, new { @id = "loginForm" }))
{
<div id="logbtn">
<input type="submit" name="invisible" class="subinvisible"/>
<p>@HeelpResources.AccountLoginViewLoginButtonLabel</p>
<img src="~/Content/Images/ui-symb-arrow-right-white-15x15.png" width="13" height="12" />
</div>
}
Run Code Online (Sandbox Code Playgroud)
加载程序映像文件是
<img src="~/Content/Images/ui-loader-white-16x16.gif" />
Run Code Online (Sandbox Code Playgroud)
也许使用BeginForm中的OnBegin来显示加载器和OnComplete以隐藏它?但是我怎样才能改变图像呢?
任何消化找到质量好的免费装载机?
谢谢
asp.net-mvc ×7
c# ×7
javascript ×2
jquery ×2
linq ×2
ajax ×1
android ×1
automapper ×1
datepicker ×1
datetime ×1
dbcontext ×1
dto ×1
google-oauth ×1
nlog ×1
sql-server ×1
view ×1
viewmodel ×1