1

デバッグ中、MVC モデルと Formcollection は空白で、FireFox (15) または Chrome (最新バージョン) に値がありません。

IE (9) を使用したデバッグ中に、これらの値を問題なく確認できます。

これに対する解決策を知っていますか?これは、これらのブラウザーに対してプログラミングを行うことができない公開 Web サイトにとって非常に深刻です。

これが私の見解です...

@model PDFConverterModel.ViewModels.ViewModelTemplate_Guarantors

@{
    ViewBag.Title = "BHG :: PDF Generator";
}
<h2>@ViewBag.Message</h2>

<div>

    <table style="width: 1000px">
        <tr>
            <td colspan="5">
                <img alt="BHG Logo" src="~/Images/logo.gif" />
            </td>
        </tr>

        @using (Html.BeginForm("ProcessForm", "Home", FormMethod.Post))
        {  
            <tr>
                <td>
                @(Html.Kendo().IntegerTextBox()
                        .Name("LoanID")
                        .Placeholder("Enter Loan ID")
                )
            </tr>
            <tr>
                <td>@Html.LabelFor(model => model.LoanType)
                    @Html.DisplayFor(model => model.LoanType)
                </td>
                <td>
                    <label for="ddlDept">Department:</label>
                    @(Html.Kendo().DropDownList()
                            .Name("ddlDept")
                            .DataTextField("DepartmentName")
                            .DataValueField("DepartmentID")
                            .Events(e => e.Change("Refresh"))
                            .DataSource(source =>
                            {
                                source.Read(read =>
                                {
                                    read.Action("GetDepartments", "Home");
                                });
                            })
                    )
                </td>
            </tr>

            if (Model.ShowGeneratePDFBtn == true)
            {
                if (Model.ErrorT == string.Empty)
                {
            <tr>
                <td colspan="5">
                    <u><b>@Html.Label("Templates:")</b></u>
                </td>
            </tr>
            <tr>
                @for (int i = 0; i < Model.Templates.Count; i++)
                {  
                    <td>
                        @Html.CheckBoxFor(model => Model.Templates[i].IsChecked)
                        @Html.DisplayFor(model => Model.Templates[i].TemplateId)
                    </td> 
                }

            </tr>
                }
                else
                {
            <tr>
                <td>
                    <b>@Html.DisplayFor(model => Model.ErrorT)</b>
                </td>
            </tr>
                }

                if (Model.ErrorG == string.Empty)
                {
            <tr>
                <td colspan="5">
                    <u><b>@Html.Label("Guarantors:")</b></u>
                </td>
            </tr>
            <tr>
                @for (int i = 0; i < Model.Guarantors.Count; i++)
                { 
                    <td>
                        @Html.CheckBoxFor(model => Model.Guarantors[i].isChecked)
                        @Html.DisplayFor(model => Model.Guarantors[i].GuarantorFirstName)&nbsp;@Html.DisplayFor(model => Model.Guarantors[i].GuarantorLastName)
                    </td> 
                }

            </tr>
                }
                else
                {
            <tr>
                <td>
                    <b>@Html.DisplayFor(model => Model.ErrorG)</b>
                </td>
            </tr>
                }
            }   
            <tr>
                <td colspan="3">
                    <input type="submit" name="submitbutton" id="btnRefresh" value='Refresh' />
                </td>
                @if (Model.ShowGeneratePDFBtn == true)
                {
                    <td>
                        <input type="submit" name="submitbutton" id="btnGeneratePDF" value='Generate PDF' />
                    </td>
                }
            </tr>
            <tr>
                <td colspan="5">
                    @Model.Error
                </td>
            </tr>
        }
    </table>

</div>

<script type="text/javascript">

    $('btnRefresh').on('click', '#btnRefresh', function () {
        Refresh();
    });

    function Refresh() {

        var LoanID = $("#LoanID").val();

        if (LoanID != "") {
            document.forms[0].submit();
        }
        else {
            alert("Please enter a LoanId");
        }
    }
</script>
4

3 に答える 3

0

(これはコメントとして適していますが、まだコメントできません)

今後の参考のために、フォームの送信時に送信される内容の仕様(W3Cでは何かが異なる場合があります)を次に示します。

http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#category-submit

生成されたHTMLを調べて、送信されたことを確認できます。Fiddlerのようなものを使用してHttpリクエストを確認することもできます

于 2012-10-09T22:07:23.677 に答える
0

私は実験によって問題が何であるかを知りました。

Telerik MVC ウィジェットは FormCollection データを発行しません!!!!

EditorFor と TextBoxFor のみがこれらの値と入力ボタンを発行します。

それらの FormCollection 値を使用できない場合、これらのウィジェットは何の役にも立ちませんか???? 特に、データを取得でき、選択した値を他のメソッドに渡す必要がある DropDownList 。

于 2012-10-09T21:58:39.347 に答える