添加Controller获取ModelMetadata的扩展方法,XamarinApp升级程序包并使用Application.Current.Properties进行配置读写

Former-commit-id: 55ff3bd01cd455cba1a57ae46c248d1b6e7164e2
TangShanKaiPing
wanggang 5 years ago
parent 4964991626
commit c5867327d2

@ -0,0 +1,14 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.ModelBinding;
using Microsoft.Extensions.DependencyInjection;
namespace Infrastructure.Extensions
{
public static class ControllerExtensions
{
public static ModelMetadata GetModelMetadata<T>(this ControllerBase controller)
{
return controller.HttpContext.RequestServices.GetRequiredService<IModelMetadataProvider>().GetMetadataForType(typeof(T));
}
}
}

@ -6,20 +6,20 @@ using Microsoft.AspNetCore.Mvc;
namespace Application.Models
{
[Display(Name = "邮箱注册")]
//[Display(Name = "邮箱注册")]
public class RegisterModel
{
[Required(ErrorMessage = nameof(RequiredAttribute))]
[RegularExpression("^[a-zA-Z0-9]+$", ErrorMessage = "")]
[StringLength(30, MinimumLength = 5, ErrorMessage = "用户名长度为5-30")]
[Display(Name = "用户名")]
//[Display(Name = "用户名")]
[Remote("UserNameNotUsed", "Account", ErrorMessage = "用户名已存在")]
public string UserName { get; set; }
[Required(ErrorMessage = nameof(RequiredAttribute))]
[StringLength(100, MinimumLength = 6, ErrorMessage = "密码长度范围为{2}-{1}")]
[DataType(DataType.Password)]
[Display(Name = "登录密码")]
//[Display(Name = "登录密码")]
public string Password { get; set; }
[DataType(DataType.Password)]
@ -30,19 +30,19 @@ namespace Application.Models
[Required(ErrorMessage = nameof(RequiredAttribute))]
[DataType(DataType.EmailAddress)]
[RegularExpression(@"^\w+@\w+\.\w+$", ErrorMessage = "邮箱格式错误")]
[Display(Name = "邮箱")]
//[Display(Name = "邮箱")]
[Remote("EmailNotUsed", "Account", ErrorMessage = "邮箱已占用")]
public string Email { get; set; }
[UIHint("CodeCaptcha")]
[CodeCaptchaAttribute]
[Required(ErrorMessage = nameof(RequiredAttribute))]
[Display(Name = "验证码")]
//[Display(Name = "验证码")]
public string CodeCaptcha { get; set; }
[MustBeTrue(ErrorMessage = nameof(MustBeTrueAttribute))]
[AdditionalMetadata("用户服务协议", "/")]
[Display(Name = "我阅读并同意")]
//[Display(Name = "我阅读并同意")]
[UIHint("MustBeTrue")]
public bool AgreeWith { get; set; }
}

@ -1,11 +1,13 @@
using System.Linq;
using Application.Domain.Entities;
using Application.Models;
using Infrastructure.Data;
using Infrastructure.Extensions;
using Infrastructure.Resources;
using Infrastructure.Security;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Localization;
using Application.Domain.Entities;
using Infrastructure.Resources;
using System.Linq;
namespace UserCenter.Controllers
{
@ -28,6 +30,8 @@ namespace UserCenter.Controllers
public IActionResult Index()
{
//var modelMetadata = this.GetModelMetadata<RegisterModel>();
//var json = modelMetadata.ToJson();
return View(this._siteRepo.ReadOnlyTable().ToList());
}
}

@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.nbaxp.iot" android:installLocation="auto">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />
<application android:label="XamarinApp.Android"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />
<application android:label="XamarinApp.Android"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
</manifest>

@ -54,8 +54,8 @@
<Reference Include="System.Numerics.Vectors" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Xamarin.Forms" Version="4.5.0.396" />
<PackageReference Include="Xamarin.Essentials" Version="1.5.1" />
<PackageReference Include="Xamarin.Forms" Version="4.5.0.495" />
<PackageReference Include="Xamarin.Essentials" Version="1.5.2" />
</ItemGroup>
<ItemGroup>
<Compile Include="MainActivity.cs" />

@ -127,8 +127,8 @@
<Reference Include="System.Numerics.Vectors" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Xamarin.Forms" Version="4.5.0.396" />
<PackageReference Include="Xamarin.Essentials" Version="1.5.1" />
<PackageReference Include="Xamarin.Forms" Version="4.5.0.495" />
<PackageReference Include="Xamarin.Essentials" Version="1.5.2" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
<ItemGroup>

@ -1,6 +1,5 @@
using System;
using System.ComponentModel;
using System.IO;
using System.Threading.Tasks;
using Xamarin.Forms;
@ -9,18 +8,18 @@ namespace XamarinApp
[DesignTimeVisible(false)]
public partial class MainPage : ContentPage
{
private string _configFile;
private string _baseUrl = "http://192.168.1.8";
private const string baseUrlKey = "baseUrl";
private string _baseUrl;
public MainPage()
{
InitializeComponent();
this.option.Source = ImageSource.FromResource($"{this.GetType().Assembly.GetName().Name}.Images.options.png");
this._configFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "config.txt");
if (!File.Exists(this._configFile))
if (!Application.Current.Properties.ContainsKey(baseUrlKey))
{
File.WriteAllText(this._configFile, this._baseUrl);
Application.Current.Properties[baseUrlKey] = "http://192.168.1.8";
}
this._baseUrl = Application.Current.Properties[baseUrlKey] as string;
this.webView.Source = this._baseUrl;
this.Appearing += MainPage_Appearing;
}
@ -47,8 +46,8 @@ namespace XamarinApp
var input = await DisplayPromptAsync("服务器", "配置服务器地址", "确定", "取消", this._baseUrl, keyboard: Keyboard.Url, initialValue: this._baseUrl);
if (!string.IsNullOrEmpty(input))
{
Application.Current.Properties[baseUrlKey] = input;
this._baseUrl = input;
File.WriteAllText(this._configFile, this._baseUrl);
this.webView.Source = this._baseUrl;
}
}

@ -19,7 +19,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Xamarin.Forms" Version="4.5.0.396" />
<PackageReference Include="Xamarin.Essentials" Version="1.5.1" />
<PackageReference Include="Xamarin.Forms" Version="4.5.0.495" />
<PackageReference Include="Xamarin.Essentials" Version="1.5.2" />
</ItemGroup>
</Project>
Loading…
Cancel
Save