没有代码,因为我不知道这是否可能.
是否有可能在Db(此时创建)中使用角色Seed()作为Enum或类似的东西,以便不使用记住所有角色等,而是可以使用intellisense?
如果有可能你能告诉我怎么样?
我们正在从MVC站点使用WebAPI.我们从这样的控制台应用程序中做了一个概念验证,使用了AddUser Method,它在我们的数据库中调节了一个新用户.
static void Main()
{
M_Users user = new M_Users();
var newUser = new M_Users()
{
Password = "123",
FirstName = "Andrew",
Email = "someAndrew@someplace.com",
AdminCode = 1,
IsDisabled = false,
CountryId = 48,
CityId = 149,
DepartmentId = 3,
CreationDate = DateTime.Now,
CreatorUserId = 1
};
var star = RunAsync(newUser);
star.Wait();
//THIS LINE IS REACHED ALWAYS
Console.WriteLine(star.Result.UserID);
Console.ReadLine();
}
static async Task<M_Users> AddUserAsync(M_Users newUser)
{
M_Users user = new M_Users();
string requestUri = "api/User/AddUser";
using (var client = …Run Code Online (Sandbox Code Playgroud) 我一直在这里寻找类似的问题,但仍然找不到我的问题的解决方案.
我有一个包含一些文本和表单的页面,它们共享相同的ViewModel,如下所示:
public class MyViewModel
{
public IEnumerable<WordingB> WordingBs { get; set; }
public IEnumerable<WordingC> WordingCs { get; set; }
public IEnumerable<Question> Questions { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这里有关于WordingB,WordingC和Question的更多细节:
public class WordingB
{
public string EOW { get; set; }
}
public class WordingC
{
public string EOW { get; set; }
}
public class Question
{
public string QuestionText { get; set; }
public string Answer {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
这是有问题的页面:
@model MyProject.ViewModels.MyViewModel
<div class="col-md-6 masonry listview-block">
@foreach (var wording …Run Code Online (Sandbox Code Playgroud) 我有下表正确填充.
<table class="table">
<tr>
<th>Product</th>
<th>File Name</th>
<th>Release Date</th>
<th>Size</th>
<th></th>
</tr>
@{
if (Model != null)
{
foreach (var item in Model.Uploads)
{
<tr>
<td>@Html.DisplayFor(modelItem => item.Product)</td>
<td>@Html.DisplayFor(modelItem => item.DisplayName)</td>
<td>@Html.DisplayFor(modelItem => item.ReleaseDate)</td>
<td>@Html.DisplayFor(modelItem => item.Size)</td>
<td>@Html.ActionLink("Delete File", "Upload", "Tools", new { id = item.DisplayName }, null)</td>
</tr>
}
}
}
</table>
Run Code Online (Sandbox Code Playgroud)
我还有一个带动作的控制器
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> DeleteUser(
AdministratorViewModel model, string userName)
{
// Do amazing stuff...
return Index();
}
Run Code Online (Sandbox Code Playgroud)
我想将选择删除的用户名传递给此操作.我认为我可以@Html.ActionLink …
我有一个ViewModel,它包含以下结构:
public struct PricesAndDiscounts
{
public decimal FlatOff;
public decimal UnitPrice;
public decimal TotalDiscount;
public decimal TotalOptions;
public decimal TotalOrderPrice;
}
Run Code Online (Sandbox Code Playgroud)
ViewModel处于层次结构中,因此存在类型为PricesAndDiscounts的属性,该属性是DisplayRowPriceViewModel的成员,DisplayRowPriceViewModel是ManageOrderEditModel的成员:
-ManageOrderEditModel --DisplayRowPriceViewModel
.
请求的"形状"完全按照我的期望和期望(参见表单项的Fiddler截图):

但是,在服务器上,默认的模型绑定器将结构实例化为每个成员的零.ViewModel中的其他所有内容都是由ModelBinder创建的,没有任何问题.
我是否需要为自定义结构创建自定义ModelBinder?
编辑 - 添加更多详细信息
签名是:
public ActionResult ManageOrder([FromBody]ManageOrderEditModel model)
Run Code Online (Sandbox Code Playgroud)
我在没有FromBody属性的情况下尝试过它.此外,PriceAndDiscounts是一个结构的事实并不是问题.我把它改成了一个类,所有成员都以零的形式出现,而不是你从表单中看到的Fiddler中的值.
ManageOrderEditModel
public class ManageOrderEditModel
{
public DisplayOptionsInDropDownViewModel DisplayOptionsInDropDownViewModel { get; set; }
public DisplayRowPriceViewModel DisplayRowPriceViewModel { get; set; }
public int ID { get; set; }
public int RegType { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
DisplayRowPriceViewModel
public class DisplayRowPriceViewModel
{
public Discount Discount { …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建适用于两种不同模型的视图.但是我一直在查看视图中传递的错误类型的错误:
传递到字典中的模型项的类型为'System.Data.Entity.DynamicProxies.ApplicationUser_D1BDF9065CBA1B8BC24F5E69ACC3CAB19A6C7FB8624B0C4435112D881B7C9CA2',但此字典需要类型为'StudentBookProject.ViewModel.UserPostWrapper'的模型项.
我已经创建了一个简单的包装类,所以我可以访问两个分离的类的所有属性,如下所示:
public class UserPostWrapper
{
public ApplicationUser UserInfoObject { get; set; }
public List<Post> PostInfoObject { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是抛出异常的视图:
@model StudentBookProject.ViewModel.UserPostWrapper
<script src="~/Scripts/jquery-1.10.2.js"></script>
<script src="~/Scripts/jquery-ui-1.11.2.js"></script>
@using (Html.BeginForm("Upload", "Posts", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<div class="jumbotron" style="height:300px">
<div class="col-md-3">
<img id="profilePhoto" src="data:image/png;base64,@Convert.ToBase64String(Model.UserInfoObject.ProfilePicture, 0, Model.UserInfoObject.ProfilePicture.Length)" width="150" />
</div>
<div id="dialog" style="display: none;">
<img src="data:image/png;base64,@Convert.ToBase64String(Model.UserInfoObject.ProfilePicture, 0, Model.UserInfoObject.ProfilePicture.Length)">
</div>
<div class="col-md-push-5">
@Html.Label(Model.UserInfoObject.Name + " " + Model.UserInfoObject.LastName, new { @class = "nameLabel" }) <br />
@Html.Label(Model.UserInfoObject.DateOfBirth) <br …Run Code Online (Sandbox Code Playgroud) 我有一个Timetable模型,目前只有两个属性,一个Id和Date.它定义如下:
public class Timetable
{
public int Id { get; set; }
[Required, Column(TypeName = "Date"), DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime Date { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后我构建了一些基本的CRUD功能,并且由于DisplayFormat注释,它允许我创建带有日期dd/MM/yyyy格式的时间表.但是,当我编辑现有时间表时,应用程序将填充Date文本框01/01/2015 00:00:00(参见屏幕截图).

有没有办法让我的应用程序只使用日期,而不是日期和时间?
我可以使用HttpContext.ApplicationInstance.Context该类来使用该Session函数存储会话数据吗?或者有更好的方法来做到这一点?
我有一个视图模型,我在其中存储DateTime但在我的视图中使用a JQUERY datetimepicker,仅限时间:
视图模型
[DataType(DataType.Time)]
public DateTime? MondayFrom { get; set; }
[DataType(DataType.Time)]
public DateTime? MondayTo { get; set; }
Run Code Online (Sandbox Code Playgroud)
就目前而言,当调用Create方法时,它使用今天的日期加上从中选择的时间timepicker.
由于我并不特别关注日期部分DateTime,我想将日期,月份和年份更改为01/01/1900或者比记录编写日期更不具体的内容,在创建记录之前,这纯粹是以避免将来出现任何混淆.
我不想陷入这样做是否正确的事情.
我很难掌握DateTime的Date部分,见下文:
public void CreateClub(Club club)
{
foreach (var item in club.MeetingDays)
{
// change Date part to 01/01/1900, leave the time as is..
}
_repository.CreateClub(club);
}
Run Code Online (Sandbox Code Playgroud)
我怎么可能把日期部分放在item一边但是把时间留在一边?
我有简单的联系表格,这是(查看)模型:
public class ContactForm
{
[Required]
public string Name;
[Required]
public string Email;
[Required]
public string Subject;
[Required]
public string Msg;
}
Run Code Online (Sandbox Code Playgroud)
控制器:
public ActionResult Contact (ContactForm form)
{
return RedirectToAction("Index");
}
Run Code Online (Sandbox Code Playgroud)
视图:
@model myNamespace.ContactForm
...
@using (Html.BeginForm("Contact", "Home", FormMethod.Post))
{
@Html.LabelFor(x => x.Name)
@Html.TextBoxFor(x => x.Name)
@Html.LabelFor(x => x.Email)
@Html.TextBoxFor(x => x.Email)
@Html.LabelFor(x => x.Subject)
@Html.TextBoxFor(x => x.Subject)
@Html.LabelFor(x => x.Msg)
@Html.TextAreaFor(x => x.Msg)
<button type="submit">Enviar</button>
}
Run Code Online (Sandbox Code Playgroud)
调用Controller的Contact方法.但是param form将所有字段都设为null:

asp.net-mvc-5 ×10
c# ×7
asp.net-mvc ×5
asp.net ×2
razor ×2
.net ×1
async-await ×1
date ×1
enums ×1
forms ×1
html5 ×1
intellisense ×1
modelbinders ×1