2017-07-19 79 views
0

获得价值,我有代码在我的控制器(维护)是这样的:的ASP.NET MVC - 无法从控制器

public JsonResult GetGroupPortfolioDetail(string sPFolioGroupCode) 
    { 
     var result = _portfolioRepository.GetGroupPortfolio(sPFolioGroupCode.Trim()); 
     var portfolio = new TPFolio(); 

     portfolio.PFolioCode = result.PortfolioGroupCode; 
     portfolio.PFolioSName = result.ShortName; 
     portfolio.PFolioFName = result.FullName; 
     portfolio.ReportingCurrency = result.Curr; 
     portfolio.NPWP = result.NPWP; 
     portfolio.IsActive = result.IsActive; 

     return Json(portfolio, JsonRequestBehavior.AllowGet); 
    } 

和代码视图模型(GroupPortfolioViewModel):

public class GroupPortFolio 
{ 

    public string PortfolioGroupCode { get; set; } 
    public string PortfolioCode { get; set; } 
    public string ShortName { get; set; } 
    public string FullName { get; set; } 
    public float Seq { get; set; } 
    public string IsActive { get; set; } 
    public string NPWP { get; set; } 
    public string Curr { get; set; } 
    public string TimestampID { get; set; } 
} 

和代码查询我的库文件夹名称文件:(portfolioRepository):

public GroupPortFolio GetGroupPortfolio(string sPFolioGroupCode) 
    { 
     string query = "SELECT DISTINCT B.PFolioGroupCode AS PortfolioGroupCode, A.PFolioSName AS ShortName , A.PFolioFName AS FullName, A.IsActive AS Active, A.ReportingCurrency AS Curr, A.NPWP AS NPWP, A.TimestampID AS TimestampID "; 
     query = query + " FROM TPFolio As A INNER JOIN TPFolioGroup As B ON A.PFolioCode = B.PFolioGroupCode WHERE (B.PFolioGroupCode = '" + sPFolioGroupCode + "')"; 

     return _db.ExecuteQuery<GroupPortFolio>(query).SingleOrDefault(); 
    } 

和代码视图(GroupPortfolio):

function loadGroupPortFolio(sPFolioGroupCode) { 

    $.ajax({ 
     url: '@Url.Action("GetGroupPortfolioDetail", "Maintenance")', 
     data: 'sPFolioGroupCode=' + sPFolioGroupCode, 
     success: function (result) { 
      $('#PortfolioGroupCode').val(result.PFolioCode); 
      $('#PortfolioSName').val(result.PFolioSName); 
      $('#PortfolioFName').val(result.PFolioFName); 
      $('#Currency').val(result.ReportingCurrency); 
      $('#NPWP').val(result.NPWP); 
      var isactive = result.IsActive; 
      $("input[name='RadioActive']").each(function() { 
       if ($(this).val() == isactive) { 
        $(this).attr("checked", "checked"); 
        //$(this).prop("checked", "checked"); 
       } 
      }); 

      TimeStampIDPortfolio = result.TimestampID; 
     } 
    }); 
} 

和HTML:

<fieldset> 
        <div class="row"> 
         <section class="col col-lg-2"> 
          <label class="label">Code</label> 
          <label class="input"> 
           <input type="text" name="PortfolioCode" id="PortfolioGroupCode" /> 
           <b class="tooltip tooltip-bottom-right">Portfolio Code</b> 
          </label> 
         </section> 
         <section class="col col-lg-2"> 
          <label class="label">Short Name</label> 
          <label class="input"> 
           <input type="text" name="PortfolioSName" id="PortfolioSName" /> 
          </label> 
         </section> 
         <section class="col col-lg-2"> 
          <label class="label">Full Name</label> 
          <label class="input"> 
           <input type="text" name="PortfolioFName" id="PortfolioFName" /> 
          </label> 
         </section> 
        </div> 
        <div class="row"> 
         <section class="col col-lg-2"> 
          <label class="label">Report Currency</label> 
          <label class="select"> 
           @Html.DropDownListFor(model => model.Currency, Model.Currencies, new { @class = "input-sm" }) 
           <i></i> 
          </label> 
         </section> 
         <section class="col col-lg-2"> 
          <label class="label">NPWP</label> 
          <label class="input"> 
           <input type="text" name="NPWP" id="NPWP" /> 
          </label> 
         </section> 
         <section class="col col-lg-2"> 
          <label class="label">Active</label> 
          <div class="inline-group"> 
           <label class="radio"> 
            <input type="radio" name="RadioActive" class="RadioActive" value="T" /> 
            <i></i> 
            Yes 
           </label> 
           <label class="radio"> 
            <input type="radio" name="RadioActive" class="RadioActive" value="F" /> 
            <i></i> 
            No 
           </label> 
          </div> 
         </section> 
        </div> 
       </fieldset> 

,问题是我无法从控制器 'portfolio.IsActive' 获得的价值。所以当我在浏览器中运行这个时,IsActive的单选按钮没有被选中。我得到的价值IsActive是空的。不是T或F.

请帮助我,你知道我的代码错误吗?

回答

2

IsActive为null,因为你的SQL查询返回IsActive为Active

SELECT DISTINCT B.PFolioGroupCode AS PortfolioGroupCode 
       , A.PFolioSName AS ShortName 
       , A.PFolioFName AS FullName 
       , A.IsActive AS Active /* <-- see here*/ 
       -- ... 
FROM TPFolio As A ... 

所以,无论是从IsActive改变你的视图模型来Active或更改别名在你的SQL查询。

再加上:Use parameters! Think of little bobby tables.

+0

是的,你是对的,thanx你的帮助,它现在解决了。 – Fitre