两种形式具有相同的输入ID在asp.net mvc的 [英] two forms with same input id in asp.net mvc

查看:94
本文介绍了两种形式具有相同的输入ID在asp.net mvc的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个页面上的多个表单它通过隐藏的输入传递一个ID控制器。当我使用强类型的意见,这些我想我需要保持ID为每个这些是相同的。但我认为这是不好的做法它的工作原理目前。我应该如何处理呢?在Django有形式preFIX值是有一个相当于?

<一个href=\"http://stackoverflow.com/questions/1252826/avoid-duplication-of-form-input-element-id-in-django\">http://stackoverflow.com/questions/1252826/avoid-duplication-of-form-input-element-id-in-django

下面是我使用的两种形式:

 &LT;形式的行动=/场/ CropImage的方法=后&GT;
            &LT;输入ID =CourseIdNAME =CourseId类型=隐藏值=&LT;%= Model.CourseId%GT; /&GT;
            &LT;输入ID =XNAME =X型=隐藏值=&LT;%= Model.X%GT; /&GT;
            &LT;输入ID =YNAME =Y型=隐藏值=&LT;%= Model.Y%GT; /&GT;
            &LT;输入ID =WNAME =W型=隐藏值=&LT;%= Model.W%GT; /&GT;
            &LT;输入ID =HNAME =H型=隐藏值=&LT;%= Model.H%GT; /&GT;
            &LT;输入类型=提交值=剪裁/&GT;
        &LT; /表及GT;        &LT;形式的行动=/场/ UploadImageENCTYPE =的multipart / form-data的方法=后&GT;
            &LT;输入ID =CourseIdNAME =CourseId类型=隐藏值=&LT;%= Model.CourseId%GT; /&GT;
            &LT;标签=图片&GT;选择图片:&LT; /标签&gt;&LT;输入ID =图像类型=文件名称=选择图片/&GT;
            &LT;输入类型=提交值=上传/&GT;
        &LT; /表及GT;


解决方案

如果您有2视图模型(一个用于作物,一个用于上传),您可以preFIX他们像这样(您可以使用HTML佣工):

 &LT;形式的行动=/场/ CropImage的方法=后&GT;
        &LT;输入ID =Crop_CourseIdNAME =Crop.CourseId类型=隐藏值=&LT;%= Model.CourseId%GT; /&GT;
        &LT;输入ID =Crop_XNAME =Crop.X类型=隐藏值=&LT;%= Model.X%GT; /&GT;
        &LT;输入ID =Crop_YNAME =Crop.Y类型=隐藏值=&LT;%= Model.Y%GT; /&GT;
        &LT;输入ID =Crop_WNAME =Crop.W类型=隐藏值=&LT;%= Model.W%GT; /&GT;
        &LT;输入ID =Crop_HNAME =Crop.H类型=隐藏值=&LT;%= Model.H%GT; /&GT;
        &LT;输入类型=提交值=剪裁/&GT;
    &LT; /表及GT;    &LT;形式的行动=/场/ UploadImageENCTYPE =的multipart / form-data的方法=后&GT;
        &LT;输入ID =Upload_CourseIdNAME =Upload.C​​ourseId类型=隐藏值=&LT;%= Model.CourseId%GT; /&GT;
        &LT;标签=图片&GT;选择图片:&LT; /标签&gt;&LT;输入ID =Upload_Image类型=文件名称=Upload.Image/&GT;
        &LT;输入类型=提交值=上传/&GT;
    &LT; /表及GT;

和然后将其绑定与preFIX属性为您控制器这样的动作:

 公众的ActionResult CropImage([装订(preFIX =剪裁)CropViewModel视图模型)
{
  // 做一点事
}
公众的ActionResult UploadImage([装订(preFIX =上传)] UploadViewModel视图模型)
{
  // 做一点事
}

I have multiple forms on a page which pass an id to the controller via hidden inputs. As I am using strongly typed views for these I think I need to keep the Id for each of these to be the same. It works currently though I think it's bad practice. How should I handle this? In Django there are form prefix values is there an equivalent?

http://stackoverflow.com/questions/1252826/avoid-duplication-of-form-input-element-id-in-django

Here are the two forms I am using:

        <form action="/Course/CropImage" method="post"> 
            <input id="CourseId" name="CourseId" type="hidden" value="<%= Model.CourseId %>" />
            <input id="X" name="X" type="hidden" value="<%= Model.X %>" />
            <input id="Y" name="Y" type="hidden" value="<%= Model.Y %>" />
            <input id="W" name="W" type="hidden" value="<%= Model.W %>" />
            <input id="H" name="H" type="hidden" value="<%= Model.H %>" />
            <input type="submit" value="Crop" />
        </form>

        <form action="/Course/UploadImage" enctype="multipart/form-data" method="post">
            <input id="CourseId" name="CourseId" type="hidden" value="<%= Model.CourseId %>" />
            <label for="Image">Select Image:</label><input id="Image" type="file" name="Select Image"/>
            <input type="submit" value="Upload" />
        </form>

解决方案

If you are having 2 view models (one for the crop, one for the upload) you can prefix them like this (you can use html helpers):

    <form action="/Course/CropImage" method="post"> 
        <input id="Crop_CourseId" name="Crop.CourseId" type="hidden" value="<%= Model.CourseId %>" />
        <input id="Crop_X" name="Crop.X" type="hidden" value="<%= Model.X %>" />
        <input id="Crop_Y" name="Crop.Y" type="hidden" value="<%= Model.Y %>" />
        <input id="Crop_W" name="Crop.W" type="hidden" value="<%= Model.W %>" />
        <input id="Crop_H" name="Crop.H" type="hidden" value="<%= Model.H %>" />
        <input type="submit" value="Crop" />
    </form>

    <form action="/Course/UploadImage" enctype="multipart/form-data" method="post">
        <input id="Upload_CourseId" name="Upload.CourseId" type="hidden" value="<%= Model.CourseId %>" />
        <label for="Image">Select Image:</label><input id="Upload_Image" type="file" name="Upload.Image"/>
        <input type="submit" value="Upload" />
    </form>

and then bind attribute with the prefix to you controller actions like this:

public ActionResult CropImage([Bind(Prefix="Crop")]CropViewModel viewModel)
{
  // do something
}


public ActionResult UploadImage([Bind(Prefix="Upload")]UploadViewModel viewModel)
{
  // do something
}

这篇关于两种形式具有相同的输入ID在asp.net mvc的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆