2011-12-29 10 views
0

私はメモがいっぱいのグリッドを持っており、新しいメモを追加できるようにしたい。これは2つの異なるビューを使用して動作しますが、CreateNoteビューは新しいウィンドウを開きます。これを同じウィンドウで開きたいそのため、Viewの代わりにPartialViewを使用します。これは動作しますが、 "@using(UI.koform(Model、null))"はhtmlと見なされ、knockoutjsは機能しません。この作業を部分的な視点で行うにはどうすればよいですか?あなたはビューエンジンを混合しているように見えます部分ビューで@usingを使用するにはどうすればよいですか?

<%@ 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> 
} 
+0

あなたの部分図でいくつかの場所で混合 '' タグを持っていないのはなぜ? –

+0

私はまだそれを持っていました。なぜなら、これをPartialViewにタグなしで動作しなかったビューからコピーしたからです。それでも同じ問題があります。 –

+1

お待ちください、webforms <% %>の構文と剃刀の@を混在できますか? –

答えて

2

コード:

ビュー:

[...] 
<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); 

     } 

パーシャルビュー。 usingステートメントがRazorを使用している間、コントロール定義でASPX Viewエンジンの構文(<%@ %>)を使用しています。私の推測では、あなたがこれにコードを変更した場合、それが働くだろうです:

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

<%-- HTML --%> 

<% } %> 
+0

、ありがとう! –

関連する問題