0

私はasp.net mvcでプロジェクトを行っています。ビューに特定の人物の詳細を表示したい。データを表示するには、2 つのテーブルを結合する必要があります。そのために私はしました:

コントローラ:

[HttpGet]
public ViewResult DisplayData()  
{  
    ViewBag.Designation1up = new SelectList(db.Designations, "Designation1up", "DesignationInternal", "DesignationExternal");  
    return View();  
}  

[HttpPost]  
public ActionResult DisplayData(Employee emp)  
{  
    try  
    {  
        object s = Session["EmployeeID"];  
        var sessval = s.ToString();  
        var data1 = (from e in db.Employees.Where(c => c.EmployeeID == sessval) join d in db.Designations on e.Designation1up equals d.Designation1up select e).SingleOrDefault();  
        return View(data1);  
    }  
    catch (Exception e)  
    {  
    }  
    ViewBag.Designation1up = new SelectList(db.Designations, "Designation1up", "DesignationInternal",emp.Designation1up);  
    return View(emp);     
}

景色:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<ResourceTracking.ViewModel.AdminDetailsModel>" %> 
<!DOCTYPE html> 
<html> 
  <head runat="server"> 
    <title>DisplayData</title> 
  </head> 
  <body> 
    <fieldset> 
      <legend>AdminDetailsModel</legend> 
      <div class="display-label">EmployeeID</div> 
      <div class="display-field"> <%: Html.DisplayFor(model => model.EmployeeID) %> </div> 
      <!--...(same DIV 4 other fields)-->
   </fieldset>  
  </body> 
</html> 

私の問題は、コードをデバッグするときにコンパイラがHttpPostメソッドに入らないことです。HttpGetメソッドをデバッグして出力するだけですHttpPostが、実行しないと出力が正しくありません。これにはどうすればよいですか?

4

1 に答える 1

0

ASP.NETMVCの動作について少し混乱していると思います。通常、ビューにデータを表示するには、HttpGetアクション(DisplayData)を呼び出し、モデルを作成し、関連するデータ(従業員)を入力して表示します。

このようなもの(テストされていない)

[HttpGet]
public ViewResult DisplayData()  
{  
    ViewBag.Designation1up = new SelectList(db.Designations, "Designation1up", "DesignationInternal", "DesignationExternal");  

    SomeModel model = new SomeModel();

    object s = Session["EmployeeID"];  
    if (s != null)
    {
        var employeeId = s.ToString();  

        model.EmployeeData = GetEmployeeData(employeeId);
    }

    return View(model);  
}  

private Employee GetEmployeeData(string employeeId)  
{  
    return (from e in db.Employees.Where(c => c.EmployeeID == employeeId) 
            join d in db.Designations 
                on e.Designation1up equals d.Designation1up 
            select e).SingleOrDefault();  
}
于 2013-02-25T13:37:13.017 に答える