ASP MVC Razor View不希望从模型

时间:2017-10-21 07:29:27

标签: c# asp.net asp.net-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 })
当模型不为null时,

显示'wth'...做了一些调试以查看my_value是否设置正确...嗯

编辑:

感谢您的评论。

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

  1. 我有一个主视图Main.cshtml,它显示了记录。单击glyphicon可以编辑每条记录。

  2. JS代码抓取record_id并使Ajax调用Application Controller / editApp操作。

  3. 我在Main.cshtml中有一个部分的_EditApplication.cshtml来显示我的选项卡式jQuery UI对话框。并且还使用_AddAppForm.cshtml partial,使模型显示在数据字段中。

    ....我认为这是我的问题所在(其中lol)...我在主视图中调用部分(_EditApplication.cshtml)...我在Controller中返回相同的部分具有关联模型的操作。

  4. 代码:

    Main.cshmtl

    @{ 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 - Partial

    @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>
    

    Application Controller - 操作: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 个答案:

答案 0 :(得分:0)

所以,是的,我明白了......万一有人像这样被卡住了......改变了:

Main.cshmtl:

在此处添加部分不起作用,必须将其替换为包含部分内容的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和Controller。

清理_AddAppForm.cshmtl ...

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