简体   繁体   English

而不是id在选择列表中使用名字+姓氏+电子邮件asp.net mvc

[英]instead of id use firstname+lastname+email in select list asp.net mvc

I have feedback form with two fields : project_name and lastName of partner. 我有两个字段的反馈表:project_name和伙伴的lastName。 The first fiels is correct(project_name) but instead lastName of second field I want there firstName+lastName+email, how to do it? 第一个字段是正确的(project_name),但是第二个字段的lastName是我想要的firstName + lastName + email,该怎么做? At the moment there is only lastname, but I can have multiply lastnames for different partners. 目前只有姓氏,但我可以为不同的伙伴使用多个姓氏。 Below is sample of code how I create this form. 以下是我如何创建此表单的代码示例。

In my create method of feedbackController: 在我的feedbackController的创建方法中:

  ViewBag.project_id = new SelectList(db.Projects.Where(p => p.project_id == project_id), "project_id", "name");
  ViewBag.Id = new SelectList(db.Users_projects.Where(p => p.project_id == project_id && p.project_role == "partner").Select(up => new { up.AspNetUsers.FirstName,up.AspNetUsers.LastName, up.AspNetUsers.Id }), "Id", "LastName");

Here is my view how render this form: 这是我的观点,如何呈现这种形式:

<div class="form-horizontal">
    <h4></h4>
    <hr />
    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
    <div class="form-group">
        @Html.LabelFor(model => model.project_id, "Project: ", htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.DropDownList("project_id", null, htmlAttributes: new { @class = "form-control" })
            @Html.ValidationMessageFor(model => model.project_id, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        @Html.LabelFor(model => model.Id, " For partner : ", htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.DropDownList("Id", null, htmlAttributes: new { @class = "form-control" })
            @Html.ValidationMessageFor(model => model.Id, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Create" class="btn btn-default" />
        </div>
    </div>
</div>
ViewBag.Id =db.Users_projects
   .Where(p => p.project_id == project_id &&p.project_role == "partner")
   .Select(up =>
   new SelectListItem {
                     // You may append User email also here
                     Text= up.AspNetUsers.FirstName +" "+up.AspNetUsers.LastName,
                     Value = up.AspNetUsers.Id.ToString() })
   .ToList();

You can make your code more readable/maintainable by not using dynamic stuff like ViewBag and switch to a strongly typed viewmodel to pass the data between your action method and view 您可以不使用诸如ViewBag之类的动态内容,而使代码更易读/可维护,而切换到强类型化的viewmodel,以便在操作方法和视图之间传递数据。

public class AssignProjectOwnerShipVm
{
  public int SelectedPartner {set;get;}
  public int SelectedProject {set;get;}
  public List<SelectListItem> Projects {set;get;}
  public List<SelectListItem> Partners {set;get;}
}

and in your GET action 并在您的GET操作中

pubilc ActionResult AssignProject()
{
  var vm = new AssignProjectOwnerShipVm();
  vm.Projects = db.Projects.Select(s=>new SelectListItem
                      {
                        Value = s.ProjectId.ToString(),
                        Text = s.ProjectName 
                      }).ToList();
  vm.Partners=db.Users_projects
       .Where(p => p.project_id == project_id &&p.project_role == "partner")
       .Select(up =>
       new SelectListItem {
                     // You may append User email also here
                     Text= up.AspNetUsers.FirstName +" "+up.AspNetUsers.LastName,
                     Value = up.AspNetUsers.Id.ToString() })
   .ToList();

 return View(vm);
}

And your view 还有你的看法

@model AssignProjectOwnerShipVm
@using(Html.BeginForm())
{
  @Html.DrowpDownListFor(s=>s.SelectedProject,Model.Projects,"Select one")
  @Html.DrowpDownListFor(s=>s.SelectedPartner,Model.Partners,"Select one")
<input type="submit" />

}

And your HttpPost 还有你的HttpPost

[HttpPost]
public ActionResult AssignProjecct(AssignProjectOWnerShipVm model)
{
  // check for model.SelectedParter and model.SelectedProject
 // to do  :Save and redirect
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用ASP.NET从Facebook获取名字,姓氏和电子邮件地址 - Get firstname, lastname and email address from Facebook using ASP.NET 将FirstName / LastName整合为FullName ASP.NET Core Identity - Consolidate FirstName/LastName into FullName ASP.NET Core Identity (C#LINQ)使用电子邮件选择名字和姓氏 - (C# LINQ) Select firstname and lastname using email 选择List返回System.Data.Entity.DynamixProxies而不是MVC asp.net中的值C# - Select List returns System.Data.Entity.DynamixProxies instead of values in MVC asp.net C# 如何使用asp.net mvc facebook访问用户的电子邮件ID? - How to access the users Email id with asp.net mvc facebook? 我想使用 Asp.net 核心流畅验证阻止更新属于对象的 FirstName 和 LastName 属性 - I want to prevent update of FirstName and LastName property which belongs to an object using Asp.net core fluent validations ASP.NET MVC DropDownList显示“ Id”而不是“ Description” - ASP.NET MVC DropDownList displaying “Id” instead of “Description” 枚举选择列表ID未使用ASP.NET MVC3分配给SQL - Enum select list ID not being assigned to SQL using ASP.NET MVC3 ASP.NET MVC电子邮件 - ASP.NET MVC Email 如何在 ASP.NET 中按类而不是 ID 选择元素? - How to select an element by Class instead of ID in ASP.NET?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM