2017-10-21 28 views
-3

我的Razor視圖接受一個模型顯示@ Html.TextBoxFor值...我在此代碼..ASP MVC Razor視圖並不想從模型

@{ 
    var my_value = "wth"; 
    if (Model.app != null) 
    { my_value = Model.app.name; } 
} 

@Html.TextBoxFor(a => a.app.name, new { @Value = my_value }) 

顯示「問心無愧「當模特是不是空...做了一些調試,看看是否MY_VALUE設置正確...嗯

編輯:

謝謝你的意見。

有點新的ASP MVC。一些我想要做的背景:

  1. 我有一個主視圖Main.cshtml,它顯示記錄。每個記錄都可以通過點擊圖形來編輯。

  2. JS代碼抓取record_id並對應用程序控制器/ editApp操作進行Ajax調用。

  3. 我在Main.cshtml中有一個partial _EditApplication.cshtml來顯示我的選項卡式jQuery UI對話框。並且還使用_AddAppForm.cshtml部分,它將模型顯示在數據字段中。

    ....我認爲這是我的問題(其中包括其他大聲笑)......我在主視圖中調用partial(_EditApplication.cshtml)...並且我返回了同樣的部分在我的控制器與相關模型的操作。

代碼:

Main.cshmtl

@{ AppDBServer this_ads = new AppDBServer(); } 
@Html.Partial("_EditApplication", this_ads) 

<div [email protected]_id.ToString() class="glyphicon glyphicon-pencil btn_edit_app" aria-hidden="true" style="color:blue; cursor:pointer"></div> 

JS代碼Main.cshtml

$('.btn_edit_app').click(function() { 
     var app_to_edit = $(this).attr('id'); 
     $.ajax({ 
      url: '/Application/editApp', 
      contentType: 'application/html; charset=utf-8', 
      data: { app_id: app_to_edit}, 
      type: 'GET', 
      dataType: 'html', 
      success: function (result) {}, 
     }); 
     $('#edit_tabs').tabs({ active: 0 }); 
     $('#edit_dialog').dialog({ width: 700, height: 400 }); 
    }); 

_EditApplication.cshtml - 部分

@using NameSpace.Models 
@model AppDBServer 

<div id="edit_dialog" title="Edit Application" style="display: none"> 
    @using (Html.BeginForm("saveApps", "Application", new { isNew = false })) { 
     <div id="edit_tabs"> 
      <ul><li><a href="#edit_application">Application</a></li></ul> 
       @Html.Partial("_AddAppForm", @Model) 
     </div> 
} 
</div> 

應用程序控制器 - 操作:editApp

namespace SHS_Connect.Controllers 
{ 
    public class ApplicationController : Controller 
    { 
     public ActionResult editApp(int app_id) 
      { 
       AppDBServer ads = new AppDBServer(); 
       ads = findADS(app_id); 
       return PartialView("_EditApplication", ads); 
      } 
    } 
} 

_AddAppForm.cshmtl - 在_EditApplication.cshtml部分二手

@using NameSpace.Models 
@model AppDBServer 

<div id="application"> 
    <div class="form-group"> 
     @Html.LabelFor(a => a.app.name) 

     @{ 
      var my_value = "wth"; 
      if (Model.app != null) 
      { my_value = Model.app.name; } 
     } 
     @Html.TextBoxFor(a => a.app.name, new { @Value = my_value }) 
    </div> 
</div> 
+1

什麼都在做,標誌着下來純缺乏瞭解 –

+1

問題使用'HtmlHelper'方法時,不要嘗試設置'value'屬性。在將模型傳遞給視圖之前,您可以在GET方法中設置該屬性的值。 –

+0

這就是我通常所做的......我有一個糟糕的設計問題,我在想..我在Main.cshtml中使用了相同的部分,並將相同的部分與數據庫中的模型和關聯值一起返回。在Main中,局部只需要一個空模型......所以當我去顯示時......我說,如果它是空的,那麼只顯示一個空的字段。 爲什麼我使用相同的部分: - 如果我不在Main.cshtml中包含部分,我的jQuery對話框w/tabs不會彈出。 - 我還需要選項卡來顯示模型數據。 – MAR

回答

0

所以,是的,我看着辦吧......萬一有人被卡住這樣...變化,使:

Main.cshmtl:

加入這裏的部分不能正常工作,有一個div標籤來代替它W/ID將包含部分...

<div id="div_editapp_dialog"></div> 

JS代碼在Main.cshtml:

成功函數應該填充div和獲得標籤/對話會。

success: function (result) { 
        $('#div_editapp_dialog').html(result); 
        $('#edit_tabs').tabs({ active: 0 }); 
        $('#edit_dialog').dialog({ width: 700, height: 400 }); 
       } 

對_EditApplication.cshtml和Controller沒有改變。

清理_AddAppForm.cshmtl ...

<div class="form-group"> 
    @Html.LabelFor(a => a.app.name) 
    @Html.TextBoxFor(a => a.app.name) 
</div>