0

我有一个充满笔记的网格,我希望能够添加一个新笔记。这可以使用两个不同的视图,但这会使 CreateNote 视图打开一个新窗口。我希望它在同一个窗口中打开。因此,我使用 PartialView 而不是 View。这可行,但“@using (UI.koform(Model, null))”被视为 html,因此 knockoutjs 不起作用。我怎样才能在局部视图中进行这项工作?

代码:

风景:

[...]
<script type="text/javascript">
    (function() {
        $('#load-partial').click(function() {
            $('#partial').load('@Url.Action("CreateNote", "Entity", new {modelEntity = @Model.meta.entity})');
        });
    })();   
</script>

<div id="partial"></div>
<button type="button" id="load-partial">Create Note</button>

那个行动:

public ActionResult CreateNote(
        [ModelBinder(typeof(Models.JsonModelBinder))]
        NoteModel Model, string cmd, string modelEntity)
    {  
        [...]
        return PartialView("CreateNotePartial",Model);

        }

部分观点:

<%@ Control Language="C#" Inherits="test.Web.Framework.Core.ViewUserControl<test.Web.Framework.Areas.Administration.Models.NoteModel>" %>
@using (UI.koform(Model, null))
{
<div class="ui-state-highlight ui-corner-all highlight" data-bind="visible: meta.message">
    <span class="ui-icon ui-icon-info"></span><strong data-bind="text: meta.message">
    </strong>
</div>

Subject:
<input type="text" data-bind="value:subject" />
<span data-bind="text: subject"></span>
<br />
Text:
<input type="text" data-bind="value:text" />
<br />

<a href="#" data-bind="click:function(){setvalues() }">set values</a>


<div class="dialogButtons">
    <button onclick="$('#@Model.meta.modelname').koform('submit');">
        Save</button>
</div>
}
4

1 回答 1

2

看起来您正在混合 View 引擎。您的控件定义使用 ASPX 视图引擎语法 ( <%@ %>),而您的using语句使用 Razor。我的猜测是,如果您将代码更改为此它将起作用:

<% using (UI.koform(Model, null))
{ %>

<%--  HTML  --%>

<% } %>
于 2011-12-29T14:19:00.680 回答