簡體   English   中英

ASP MVC Razor View 不想顯示模型中的 @Html.TextBoxFor 值

[英]ASP MVC Razor View doesn't want to show @Html.TextBoxFor value from the model

我的剃刀視圖正在接受一個模型......我有這個代碼......

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

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

當模型不為空時顯示“wth”......做了一些調試以查看 my_value 是否設置正確......嗯

編輯:

謝謝你的意見。

對 ASP MVC 有點陌生。 我正在嘗試做的一些背景:

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

  2. JS 代碼獲取 record_id 並通過 Ajax 調用應用程序控制器/editApp 操作。

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

    .... 我認為這就是我的問題所在(等等)...我在主視圖中調用部分(_EditApplication.cshtml)...我在我的控制器操作中返回相同的部分關聯模型。

代碼:

主文件

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

<div id=@app.app_id.ToString() class="glyphicon glyphicon-pencil btn_edit_app" aria-hidden="true" style="color:blue; cursor:pointer"></div>

Main.cshtml 中的 JS 代碼

    $('.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>

所以,是的,我想通了……萬一有人像這樣卡住……要進行更改:

主.cshmtl:

在此處添加部分不起作用,必須將其替換為包含部分的帶有 ID 的 div 標簽...

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

Main.cshtml 中的 JS 代碼:

成功函數應填充 div 並啟動選項卡/對話框。

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

_EditApplication.cshtml 和控制器沒有變化。

清理_AddAppForm.cshmtl ...

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM