0

私はMVC3の初心者です。「編集」ビューに「パスワードの生成」ボタンがあります。GeneratePsw()によって返される値を含むモーダルを表示する前に文字列を返す「Admin」コントローラーで定義された関数GeneratePsw()を実行する必要があります。

また、値をViewBag.pwdに入れて、代わりに値を返し、モーダルから読み取ろうとしました。失敗

言い換えると:

ユーザーは[Generate Password]ボタンをクリックします。次にGeneratePsw()呼び出され、文字列を返します。ブートストラップモーダルが自動的に表示され、その値がラベルに表示されます。

私からしてみれば.....

<a href="#1" role="button" class="btn btn-primary btn-small" data-toggle="modal" onclick="location.href='@Url.Action("GeneratePsw", "Admin")';return false;"><i class="icon-lock icon-white"></i> Generate Password</a>


</div>


<div id="1" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
   <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
         <h3 id="myModalLabel">Password generated</h3>
 </div>
 <div class="modal-body">
      <p><strong>Password: @(ViewBag.pwd)</strong></p>
  </div>
  <div class="modal-footer">
        <button class="btn" data-dismiss="modal" aria-hidden="true">OK</button>

  </div>
</div>


</td>

私のGeneratePsw()関数:

[HttpPost]
public ActionResult GeneratePsw()
{

    HomeBridgeEntities ddbb = new HomeBridgeEntities();
    SqlConnection Cn = new SqlConnection(((System.Data.EntityClient.EntityConnection)ddbb.Connection).StoreConnection.ConnectionString);
    SupPassGenerator sup = new SupPassGenerator(Cn);

    string psw = sup.CreateRandomPassword(9);

    ViewBag.psw = psw;

    return RedirectToAction("Edit");

}
4

1 に答える 1

1

だから私の理解はあなたがこれをajax呼び出しとしてやりたいということですか?つまり、ページ全体をリロードしませんか?また、jQueryを使用していると思いますか?

JSONを返すコントローラーへのポストバックでそれを行うことができます。それを取り戻す最も簡単な方法かもしれません:

コントローラ:

public ActionResult GeneratePsw()
{
    ...
    string psw = sup.CreateRandomPassword(9);
    var json = new { password = psw };
    return Json(json);
}

あなたのページのjs:

$('#yourgeneratebutton').on('click', function() {
  $.getJSON('YourController/GeneratePsw', function(data) {
      $('#yourpasswordp').text(data.password);
      $('#1').modal('show');
   });

注意してください、私はを使用してgetJSONいるので、アクションをで飾ることはできませんでしたHttpPost。(とにかくデータを投稿していませんか?http属性を変更するか、$.post代わりに使用する必要があります。これも完全にテストされておらず、大まかなガイドです。

または、別の方法として、モーダルなものを含む部分的なビューを返し、それを表示することもできます。

于 2013-03-14T23:34:40.857 に答える